<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Problem bei einem Growable Array]]></title><description><![CDATA[<p>Hallo ich habe mir eine Array Klasse geschrieben die dynamisch wächst, soweit<br />
ganz gut, aber ich hab das Objekt nicht wieder rausbekommen, ich<br />
habe mir die Speicherbereiche angeguckt und gesehen dass die nicht passen<br />
das 0-te Element liegt bei mir auf Index -1, ich finde den Fehler nicht.</p>
<p>Hier meine Array Klasse:</p>
<pre><code>#include &quot;TArray.h&quot;
#include &lt;malloc.h&gt;

TArray::TArray(int Length)
{
	m_iCount = 0;
	m_iLenght = 0;
	m_iResizeVector = 0;	
	m_bResizable = false;
	m_lpVoid = (void**)malloc(Length*sizeof(void*)+1);
	m_iLenght = Length;
}

TArray::~TArray(void)
{
	for(int i = 0; i &lt; m_iLenght; i++)
	{
		free(m_lpVoid[m_iLenght]);
	}

}

void TArray::Add(void* Element)
{	
	if(m_iCount &lt; m_iLenght)
	{
		m_lpVoid[m_iCount] = Element;
		m_iCount++;
	}
	if(m_bResizable &amp;&amp; m_iCount == m_iLenght &amp;&amp; m_iResizeVector &gt; 0)
	{
		m_iLenght += m_iResizeVector;
		realloc(m_lpVoid, m_iLenght*sizeof(void*)+1);
		this-&gt;Add(Element);
	}
}

void TArray::Remove(void* Element)
{
	if(m_iCount &gt; 0)
	{
		for(int index = 0; index &lt; m_iCount; index ++)
		{			
			if(m_lpVoid[index] == Element)
			{
				m_lpVoid[index] = NULL;
				ReArrange(index);
				m_iCount--;
				Remove(Element);
			}
		}
		return;
	}
	return;
}

void TArray::RemoveAt(int index)
{
	if(index &lt; m_iCount &amp;&amp; m_lpVoid[index] != NULL)
	{
		m_lpVoid[index] = NULL;
		m_iCount--;
	}
}

void* TArray::GetItemAtIndex(int index)
{
	if(index &lt; m_iCount)
		return m_lpVoid[index];
	else
		return NULL;
}

void TArray::ReArrange(int pos)
{
	for(int arrange = pos; arrange &lt; m_iCount-1; arrange++)
	{
		m_lpVoid[arrange] = m_lpVoid[arrange+1];
	}
}

void TArray::SetResizeable(bool resizeable)
{
	m_bResizable = resizeable;

}
bool TArray::GetResizeable()
{
	return m_bResizable;
}
void TArray::SetResizeVector(int resizevector)
{
	m_iResizeVector = resizevector;
}
int TArray::GetResizeVector()
{
	return m_iResizeVector;
}

int TArray::Count()
{
	if(m_iCount)
		return m_iCount;
}

int TArray::Lenght()
{
	return m_iLenght;
}
</code></pre>
<p>hier der Fall:</p>
<pre><code>//////Test Area//////
	//TComponent* root = new TComponent(NULL);
	//TComponent* Child1 = new TComponent(root);
	//TComponent* Child2 = new TComponent(root);
	//TComponent* Child3 = new TComponent(root);

	//int x = root-&gt;getTreeSize();
	TArray* arr = new TArray(10);
	TObject * o = new TObject();
	o-&gt;SetTClassName(EnumClassName::ClassEnum::T3DDevice);
	arr-&gt;Add(o);

	TObject* oo = ((TObject *)&amp;arr[-1]); &lt;-- Warum hier -1????
	const char* c = (oo)-&gt;ClassNameToString(oo-&gt;GetTClassName());

	/////////////////////
</code></pre>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/322432/problem-bei-einem-growable-array</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 03:52:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/322432.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 19 Dec 2013 21:31:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem bei einem Growable Array on Thu, 19 Dec 2013 21:31:38 GMT]]></title><description><![CDATA[<p>Hallo ich habe mir eine Array Klasse geschrieben die dynamisch wächst, soweit<br />
ganz gut, aber ich hab das Objekt nicht wieder rausbekommen, ich<br />
habe mir die Speicherbereiche angeguckt und gesehen dass die nicht passen<br />
das 0-te Element liegt bei mir auf Index -1, ich finde den Fehler nicht.</p>
<p>Hier meine Array Klasse:</p>
<pre><code>#include &quot;TArray.h&quot;
#include &lt;malloc.h&gt;

TArray::TArray(int Length)
{
	m_iCount = 0;
	m_iLenght = 0;
	m_iResizeVector = 0;	
	m_bResizable = false;
	m_lpVoid = (void**)malloc(Length*sizeof(void*)+1);
	m_iLenght = Length;
}

TArray::~TArray(void)
{
	for(int i = 0; i &lt; m_iLenght; i++)
	{
		free(m_lpVoid[m_iLenght]);
	}

}

void TArray::Add(void* Element)
{	
	if(m_iCount &lt; m_iLenght)
	{
		m_lpVoid[m_iCount] = Element;
		m_iCount++;
	}
	if(m_bResizable &amp;&amp; m_iCount == m_iLenght &amp;&amp; m_iResizeVector &gt; 0)
	{
		m_iLenght += m_iResizeVector;
		realloc(m_lpVoid, m_iLenght*sizeof(void*)+1);
		this-&gt;Add(Element);
	}
}

void TArray::Remove(void* Element)
{
	if(m_iCount &gt; 0)
	{
		for(int index = 0; index &lt; m_iCount; index ++)
		{			
			if(m_lpVoid[index] == Element)
			{
				m_lpVoid[index] = NULL;
				ReArrange(index);
				m_iCount--;
				Remove(Element);
			}
		}
		return;
	}
	return;
}

void TArray::RemoveAt(int index)
{
	if(index &lt; m_iCount &amp;&amp; m_lpVoid[index] != NULL)
	{
		m_lpVoid[index] = NULL;
		m_iCount--;
	}
}

void* TArray::GetItemAtIndex(int index)
{
	if(index &lt; m_iCount)
		return m_lpVoid[index];
	else
		return NULL;
}

void TArray::ReArrange(int pos)
{
	for(int arrange = pos; arrange &lt; m_iCount-1; arrange++)
	{
		m_lpVoid[arrange] = m_lpVoid[arrange+1];
	}
}

void TArray::SetResizeable(bool resizeable)
{
	m_bResizable = resizeable;

}
bool TArray::GetResizeable()
{
	return m_bResizable;
}
void TArray::SetResizeVector(int resizevector)
{
	m_iResizeVector = resizevector;
}
int TArray::GetResizeVector()
{
	return m_iResizeVector;
}

int TArray::Count()
{
	if(m_iCount)
		return m_iCount;
}

int TArray::Lenght()
{
	return m_iLenght;
}
</code></pre>
<p>hier der Fall:</p>
<pre><code>//////Test Area//////
	//TComponent* root = new TComponent(NULL);
	//TComponent* Child1 = new TComponent(root);
	//TComponent* Child2 = new TComponent(root);
	//TComponent* Child3 = new TComponent(root);

	//int x = root-&gt;getTreeSize();
	TArray* arr = new TArray(10);
	TObject * o = new TObject();
	o-&gt;SetTClassName(EnumClassName::ClassEnum::T3DDevice);
	arr-&gt;Add(o);

	TObject* oo = ((TObject *)&amp;arr[-1]); &lt;-- Warum hier -1????
	const char* c = (oo)-&gt;ClassNameToString(oo-&gt;GetTClassName());

	/////////////////////
</code></pre>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372893</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372893</guid><dc:creator><![CDATA[adonis]]></dc:creator><pubDate>Thu, 19 Dec 2013 21:31:38 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei einem Growable Array on Wed, 11 Jun 2014 22:35:21 GMT]]></title><description><![CDATA[<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372896</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Wed, 11 Jun 2014 22:35:21 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei einem Growable Array on Thu, 19 Dec 2013 21:50:30 GMT]]></title><description><![CDATA[<p>Du hast in deinem Klassencode die Überladung des operator[] nirgends aufgeführt. Daher wird dir beidem speziellen problem niemand helfen können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372898</guid><dc:creator><![CDATA[Namenloser324]]></dc:creator><pubDate>Thu, 19 Dec 2013 21:50:30 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei einem Growable Array on Thu, 19 Dec 2013 21:50:49 GMT]]></title><description><![CDATA[<p>ok, hier die TArray.h</p>
<pre><code>#pragma once
#include &quot;BaseUsings.h&quot;
#include &quot;TBaseClass.h&quot;
class TArray
{
private:
	void** m_lpVoid;
	int m_iCount;
	int m_iLenght;
	int m_iResizeVector;
	bool m_bResizable;
	void ReArrange(int);
public:
	TArray(int);
	~TArray(void);
	void Add(void*);
	void Remove(void*);
	void RemoveAt(int);
	void* GetItemAtIndex(int);
	void SetResizeable(bool);
	bool GetResizeable();
	void SetResizeVector(int);
	int GetResizeVector();
	int Count();
	int Lenght();
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2372899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372899</guid><dc:creator><![CDATA[adonis]]></dc:creator><pubDate>Thu, 19 Dec 2013 21:50:49 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei einem Growable Array on Thu, 19 Dec 2013 21:55:04 GMT]]></title><description><![CDATA[<p>*keuch und sterb*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372902</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372902</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Thu, 19 Dec 2013 21:55:04 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei einem Growable Array on Wed, 11 Jun 2014 22:35:26 GMT]]></title><description><![CDATA[<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372903</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Wed, 11 Jun 2014 22:35:26 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei einem Growable Array on Thu, 19 Dec 2013 22:23:48 GMT]]></title><description><![CDATA[<p>Namenloser324 schrieb:</p>
<blockquote>
<p>Du hast in deinem Klassencode die Überladung des operator[] nirgends aufgeführt. Daher wird dir beidem speziellen problem niemand helfen können.</p>
</blockquote>
<p>Überladung ist hier nicht im Spiel.</p>
<pre><code class="language-cpp">TArray* arr = new TArray(10);
    TObject * o = new TObject();
// ...

//    TObject* oo = ((TObject *)&amp;arr[-1]); &lt;-- Warum hier -1????
// äquivalent zu
    TObject* oo = reinterpret_cast&lt;TObject*&gt;(&amp;*(arr-1));  // wahrscheinlich Verwaltungsdaten im free store
</code></pre>
<p>in jedem Fall Unfug</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372905</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 19 Dec 2013 22:23:48 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei einem Growable Array on Thu, 19 Dec 2013 22:33:36 GMT]]></title><description><![CDATA[<p>TArray soll nicht nur Elemente eines Types halten.<br />
Ich habe eine Basisklasse TComponent die TArray enthält.<br />
ich möchte ettliche Componenten schreiben und einen Componenttree aufbauen.</p>
<p>Ich habe gesehen ich muss noch defensiver arbeiten.</p>
<p>Ich möchte derzeit nicht vector oder cgrowable von Microsoft nutzen,<br />
ich will es lernen und verstehen. Leider sind meine C++ Kenntnisse noch<br />
nicht so gut.</p>
<p>Ich werd die Klasse noch einmal Schritt für Schritt durchgehen und Defensiver arbeiten, einige Schönheitsfehler sind mir noch aufgefallen.</p>
<p>Danke Trozdem</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372907</guid><dc:creator><![CDATA[adonis]]></dc:creator><pubDate>Thu, 19 Dec 2013 22:33:36 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei einem Growable Array on Fri, 20 Dec 2013 00:14:09 GMT]]></title><description><![CDATA[<p>Wie willst du ein TArray benutzen, wenn du nicht weißt, welchen Typ ein Element hat? Casten und hoffen? Das ist doch Murks.</p>
<p>Halt einen std::vector&lt;std::unique_ptr&lt;TComponent&gt;&gt; oder so und sorg dafür, dass TComponent alle Operationen beherrscht, die du für den component tree brauchst. Und verwirf deinen bisherigen Ansatz -- egal, wie defensiv du den umsetzt, du polierst da Katzengold.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372908</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Fri, 20 Dec 2013 00:14:09 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei einem Growable Array on Fri, 20 Dec 2013 00:22:58 GMT]]></title><description><![CDATA[<p>Alle meine Klassen haben eine Basisklasse, ich frag einfach um welchen Type es<br />
sich handelt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372909</guid><dc:creator><![CDATA[adonis]]></dc:creator><pubDate>Fri, 20 Dec 2013 00:22:58 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei einem Growable Array on Wed, 11 Jun 2014 22:35:57 GMT]]></title><description><![CDATA[<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372910</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372910</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Wed, 11 Jun 2014 22:35:57 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei einem Growable Array on Fri, 20 Dec 2013 01:14:39 GMT]]></title><description><![CDATA[<p>Also TObject is meine Mutter aller Klassen, und hält den Classname.<br />
Dann kann ich schon Fragen, um wen es sich handelt und dann weiß ich auch was das<br />
Object kann, oder nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372916</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372916</guid><dc:creator><![CDATA[adonis]]></dc:creator><pubDate>Fri, 20 Dec 2013 01:14:39 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei einem Growable Array on Fri, 20 Dec 2013 01:51:17 GMT]]></title><description><![CDATA[<p>Willst du jedes Mal, wenn du eine neue Komponente baust, allen Code anfassen müssen, der TArray verwendet?</p>
<p>Ich lass mal nen Link da: <a href="https://de.wikipedia.org/wiki/Liskovsches_Substitutionsprinzip" rel="nofollow">https://de.wikipedia.org/wiki/Liskovsches_Substitutionsprinzip</a></p>
<p>Ich rate dir dringendst, das in deinem Design zu berücksichtigen, und zwar ganz unabhängig von der Programmiersprache. Bau dir eine Basisklasse, die die Operationen hat, die du brauchst, und dann merk dir, dass du Objekte dieses Typs verwaltest. Typinformationen zu vergessen und später wieder auszuklamüsern ist kein sinnvoller Ansatz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372917</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Fri, 20 Dec 2013 01:51:17 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei einem Growable Array on Fri, 20 Dec 2013 09:27:12 GMT]]></title><description><![CDATA[<p>seldon schrieb:</p>
<blockquote>
<p>Willst du jedes Mal, wenn du eine neue Komponente baust, allen Code anfassen müssen, der TArray verwendet?</p>
</blockquote>
<p>Verstehe ich nicht ganz, nur 2 Klassen haben TArray und zwar die Basis Komponente<br />
von der alle Komponenten erben und eine Kindklasse von der alle Visuellen Komponenten erben werden, um einen SceneGraph aufzubauen.</p>
<p>Ich werd mir den link mal anschauen danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372947</guid><dc:creator><![CDATA[adonis]]></dc:creator><pubDate>Fri, 20 Dec 2013 09:27:12 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei einem Growable Array on Fri, 20 Dec 2013 10:17:01 GMT]]></title><description><![CDATA[<p>adonis schrieb:</p>
<blockquote>
<p>Hallo ich habe mir eine Array Klasse geschrieben [...]</p>
<p>hier die TArray.h</p>
<pre><code>#pragma once
#include &quot;BaseUsings.h&quot;
#include &quot;TBaseClass.h&quot;
class TArray
{
private:
	void** m_lpVoid;
	int m_iCount;
	int m_iLenght;
	int m_iResizeVector;
	bool m_bResizable;
	void ReArrange(int);
public:
	TArray(int);
	~TArray(void);
	void Add(void*);
	void Remove(void*);
	void RemoveAt(int);
	void* GetItemAtIndex(int);
	void SetResizeable(bool);
	bool GetResizeable();
	void SetResizeVector(int);
	int GetResizeVector();
	int Count();
	int Lenght();
};
</code></pre>
</blockquote>
<ul>
<li>TArray::TArray(int) sollte explizit sein.</li>
<li>Viel zu viel <code>void</code> ! Du schmeißt wertvolle Typinformation weg.</li>
<li>Hier und da fehlt <code>const</code> .</li>
<li>Verletzung der Dreierregel! (Bitte selbst nachgucken, was das ist)</li>
</ul>
<p>adonis schrieb:</p>
<blockquote>
<p>Hier meine Array Klasse:</p>
<pre><code>#include &quot;TArray.h&quot;
#include &lt;malloc.h&gt;

TArray::TArray(int Length)
{
	m_iCount = 0;
	m_iLenght = 0;
	m_iResizeVector = 0;	
	m_bResizable = false;
	m_lpVoid = (void**)malloc(Length*sizeof(void*)+1);
	m_iLenght = Length;
}

TArray::~TArray(void)
{
	for(int i = 0; i &lt; m_iLenght; i++)
	{
		free(m_lpVoid[m_iLenght]);
	}
}

...
</code></pre>
</blockquote>
<ul>
<li>Speicherleck: Es fehlt ein free(m_lpVoid) im Destruktor</li>
<li>Du versuchst hier die Pointees zu mit free löschen, ohne zu wissen, was eigentlich hinter den void*-Zeigern steht. Ganz schlechte Idee! So werden beispielsweise garantiert keine Destruktoren aufgerufen.</li>
</ul>
<p>adonis schrieb:</p>
<blockquote>
<p>hier der Fall:</p>
<pre><code>//////Test Area//////
	//TComponent* root = new TComponent(NULL);
	//TComponent* Child1 = new TComponent(root);
	//TComponent* Child2 = new TComponent(root);
	//TComponent* Child3 = new TComponent(root);

	//int x = root-&gt;getTreeSize();
	TArray* arr = new TArray(10);
	TObject * o = new TObject();
	o-&gt;SetTClassName(EnumClassName::ClassEnum::T3DDevice);
	arr-&gt;Add(o);

	TObject* oo = ((TObject *)&amp;arr[-1]); &lt;-- Warum hier -1????
	const char* c = (oo)-&gt;ClassNameToString(oo-&gt;GetTClassName());

	/////////////////////
</code></pre>
</blockquote>
<ul>
<li>Zuviel <code>new</code> . Wozu legst du Dein Array im Heap an?</li>
<li>Speicherlecks: Nirgens wird irgend etwas freigegeben.</li>
<li>Wenn du Dein Array statt im Heap einfach im <em>automatischen</em> Speicher anlegst, wird es <em>automatisch</em> freigegeben. Dann läuft der Destruktor, der aber die per <code>new</code> erzeugten Objekte mit <code>free</code> freigegben will. Das ist falsch. Zu einem <code>new</code> gehört ein <code>delete</code> . Zu einem <code>new[]</code> gehört ein <code>delete[]</code> . Allerdings muss der Zeigertyp beim delete schon der richtige sein: Entweder der einer Basisklasse mit virtuellem Destruktor oder der richtige <em>dynamische</em> Typ.</li>
</ul>
<p>Ich will Dich da nicht demotivieren, aber das, was du da gebaut hast, ist längst nicht so toll, wie Du es Dir wahrscheinlich vorgestellt hast. Es sieht für mich so aus, als hättest Du großes Pech mit der Auswahl Deines Lehrmaterials gehabt. Ich würde Dir empfehlen, den Kram zu vergessen und nochmal von vorn anzufangen, ohne malloc, ohne free, ohne new, ohne delete. Ich würde Dir empfehlen, auch wenn Du noch nicht weißt, wie die Sachen aus der Standardbibliothek intern funktionieren, doch erst mal diese Sachen zu verwenden, um ein &quot;richtiges C++ Gefühl&quot; zu bekommen. Später kann man sich dann angucken, wie man so etwas selbst schreibt.</p>
<p>Die C++ Community hat Dir gegenüber einen großen Lern-Vorsprung. Das ist jetzt nichts schlimmes. Du musst nur nicht jeden Fehler wiederholen, die andere schon vor Dir gemacht haben. Vor der aktuellen Standardbibliothek gab es u.a. Container-Bibliotheken, die so ähnlich gestrickt waren wie Deine. Und die sind zu Recht ausgestorben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372961</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Fri, 20 Dec 2013 10:17:01 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei einem Growable Array on Fri, 20 Dec 2013 12:27:52 GMT]]></title><description><![CDATA[<p>Kann das sein, dass Du früher mit Delphi gearbeitet hast? Namensgebung und Konzept erinnern an die VCL.</p>
<p>In C++ kann man im Gegegsatz zu Delphi Objekte nicht nur dynamisch auf dem Heap anlegen sondern auch &quot;automatisch&quot; auf dem Stack. Außerdem gibt es auch so nette Sachen wie Smartpointer. Wenn Du es richtig machst und die Tips aus den Beiträgen hier befolgst musst Du dich bei C++ um die Speicherverwaltung Deiner Objekte nicht selber kümmern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2372987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2372987</guid><dc:creator><![CDATA[MichelRT]]></dc:creator><pubDate>Fri, 20 Dec 2013 12:27:52 GMT</pubDate></item></channel></rss>