<?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[Memory Leak mit Intel Compiler, mit GCC aber nicht...]]></title><description><![CDATA[<p>Hallo,</p>
<p>beschäftige mich derzeit mit einer Kuriosität, mein geschriebenes Programm hat bei der Kompilierung mit dem GCC kein Memory Leak, wenn ich es allerdings mit dem Intel-Compiler übersetze schon... ich verwende die STL + Boost unter meinem Mac.</p>
<p>Ein Leak konnte ich bis auf ein statisch deklariertes &quot;std::vector&lt;double&gt; list.push_back(xxx)&quot; zurückverfolgen ?! Jemand eine Idee wonach ich zu gucken hätte ?</p>
<p>Winn</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/195640/memory-leak-mit-intel-compiler-mit-gcc-aber-nicht</link><generator>RSS for Node</generator><lastBuildDate>Tue, 30 Jun 2026 04:35:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/195640.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 19 Oct 2007 22:26:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Fri, 19 Oct 2007 22:26:48 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>beschäftige mich derzeit mit einer Kuriosität, mein geschriebenes Programm hat bei der Kompilierung mit dem GCC kein Memory Leak, wenn ich es allerdings mit dem Intel-Compiler übersetze schon... ich verwende die STL + Boost unter meinem Mac.</p>
<p>Ein Leak konnte ich bis auf ein statisch deklariertes &quot;std::vector&lt;double&gt; list.push_back(xxx)&quot; zurückverfolgen ?! Jemand eine Idee wonach ich zu gucken hätte ?</p>
<p>Winn</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1388776</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1388776</guid><dc:creator><![CDATA[Winn]]></dc:creator><pubDate>Fri, 19 Oct 2007 22:26:48 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Sat, 20 Oct 2007 00:14:27 GMT]]></title><description><![CDATA[<p>Wo ist denn der Leak? In einer Systemfunktion oder dein Code? Und wie merkst du den Fehler? Mehr Infos, vllt. sogar Quellcode bitte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1388788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1388788</guid><dc:creator><![CDATA[Headhunter]]></dc:creator><pubDate>Sat, 20 Oct 2007 00:14:27 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Sat, 20 Oct 2007 07:03:07 GMT]]></title><description><![CDATA[<p>Das Memory Leak macht sich in der vPoints.push_back(dTmp) auf, wenn ich diesen Teil auskommentiere, habe ich kein Leak mehr. Das ist der Code-Schnipsel.... vPoints ist vom Typ std::vector&lt;double&gt; und ist in einer vererbte Klasse eingebettet.</p>
<pre><code class="language-cpp">double dTmp = 0.;
	char *cToken = &quot;,&quot;;
	class caeTokenizer split(input,*cToken);
	vPoints.clear();
	vPoints.reserve(split.getQtyOfTokens());
	for(size_t i=0; i&lt;split.getQtyOfTokens(); i++)
	{
		convertString(split.getToken(i),dTmp);
		vPoints.push_back(dTmp); // Memory Leak... why ? i have no clue
	}
	sort(vPoints.begin(),vPoints.end());
</code></pre>
<p>die Klassendefinition sieht wie folgt etwas abstrahiert wie folgt aus</p>
<pre><code class="language-cpp">class abstract
{
public:
    abstract();
    ~abstract();
.
.
};

class derive:public abstract
{
public:
   derive();
   virtual ~derive();

private:
std::vector&lt;double&gt; vPoints;
}
</code></pre>
<p>Und nach der statischen Deklaration in &quot;class derive&quot;, löscht sich vPoints nach dem Aufruf des Destruktors doch von selbst, oder nicht ? Das Projekt wird mit Standardeinstellungen von GCC oder ICC kompiliert...</p>
<p>Jemand eine Idee ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1388812</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1388812</guid><dc:creator><![CDATA[Winn]]></dc:creator><pubDate>Sat, 20 Oct 2007 07:03:07 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Sat, 20 Oct 2007 08:05:39 GMT]]></title><description><![CDATA[<p>wie hast du da jetzt rausgefunden, dass hier ein memory leak ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1388833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1388833</guid><dc:creator><![CDATA[und]]></dc:creator><pubDate>Sat, 20 Oct 2007 08:05:39 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Sat, 20 Oct 2007 09:34:35 GMT]]></title><description><![CDATA[<p>Ist der gepostete Codeschnippsel teil der Klasse?</p>
<p>Ganz wichtig ist die Frage: in welchem Scope ist die Instanz der Klasse deklariert, die besagtes vPoints enthaelt? Ist es eine globale Variable? Oder eine statische? Falls ja, dann hast du deine Antwort.</p>
<blockquote>
<p>Und nach der statischen Deklaration in &quot;class derive&quot;, löscht sich vPoints nach dem Aufruf des Destruktors doch von selbst, oder nicht ?</p>
</blockquote>
<p>Was ist eine statische Deklaration? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<pre><code class="language-cpp">class caeTokenizer split(input,*cToken);
</code></pre>
<p>hier das &quot;class&quot;-Keyword zu verwenden ist uebrigens strange, IMHO <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1388870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1388870</guid><dc:creator><![CDATA[Blue-Tiger]]></dc:creator><pubDate>Sat, 20 Oct 2007 09:34:35 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Sat, 20 Oct 2007 14:10:15 GMT]]></title><description><![CDATA[<p>und schrieb:</p>
<blockquote>
<p>wie hast du da jetzt rausgefunden, dass hier ein memory leak ist?</p>
</blockquote>
<p>Indem ich eine for-Schleife (i z.B. bis 10000) um das Hauptprogramm gelegt habe, Teilelemente innerhalb des Hauptprogramms auskommentiert und immer tiefer in die Hierachie der Funktionsaufrufe heruntergearbeitet habe, bis ich das Memory Leak durch eine simple Zeile detektiert wurde, d.h. jedes Mal Programm kompiliert, ausgeführt und im Task-Manager beobachtet. Steigt der Speicher = Loch, bleibt der Speicherverbrauch konstant = kein Loch.</p>
<p>Blue-Tiger schrieb:</p>
<blockquote>
<p>Ist der gepostete Codeschnippsel teil der Klasse?</p>
</blockquote>
<p>ja</p>
<p>Blue-Tiger schrieb:</p>
<blockquote>
<p>Und nach der statischen Deklaration in &quot;class derive&quot;, löscht sich vPoints nach dem Aufruf des Destruktors doch von selbst, oder nicht ?<br />
Was ist eine statische Deklaration ?</p>
</blockquote>
<p>Meine Formulierungen sind vielleicht nicht immer &quot;fachmännisch&quot; ^^, ich meine damit..</p>
<pre><code class="language-cpp">// dynamisch oder Block-Resistent
{
  double *ptr = new double[10];
  .
  .
}
// -&gt;&gt; ptr überlebt den &quot;Block&quot;, Speicherbereich bleibt reserviert

// statisch oder Block-Flüchtig
{
  double array[10];
  .
  .
}
// -&gt;&gt; der Speicherbereich von array wird nach Ende des Blocks automatisch freigegeben.
// Ebenfalls statisch nach meiner Vorstellung
class abstract
{
public:
    abstract();
    ~abstract();
.
.
};

class derive:public abstract
{
public:
   derive();
   virtual ~derive();

private:
std::vector&lt;double&gt; vPoints; // &lt;&lt;-- ebenfalls Block-Flüchtig, wird nach Ende des Objektes automatisch freigegeben
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1388998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1388998</guid><dc:creator><![CDATA[Winn]]></dc:creator><pubDate>Sat, 20 Oct 2007 14:10:15 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Sat, 20 Oct 2007 14:38:44 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">// dynamisch oder Block-Resistent
{
  double *ptr = new double[10];
  .
  .
}
// -&gt;&gt; ptr überlebt den &quot;Block&quot;, Speicherbereich bleibt reserviert
</code></pre>
<p>So nicht ganz richtig. ptr wird nach dem Block nicht mehr geben, aber das Double[10] bleibt auf dem Heap. Kann aber nicht mehr gelöscht werden, weil es kein Zeiger mehr gibt. Memory Leak!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1389009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1389009</guid><dc:creator><![CDATA[Aprollo]]></dc:creator><pubDate>Sat, 20 Oct 2007 14:38:44 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Sat, 20 Oct 2007 16:51:38 GMT]]></title><description><![CDATA[<p>Winn schrieb:</p>
<blockquote>
<p>und schrieb:</p>
<blockquote>
<p>wie hast du da jetzt rausgefunden, dass hier ein memory leak ist?</p>
</blockquote>
<p>Indem ich eine for-Schleife (i z.B. bis 10000) um das Hauptprogramm gelegt habe, Teilelemente innerhalb des Hauptprogramms auskommentiert und immer tiefer in die Hierachie der Funktionsaufrufe heruntergearbeitet habe, bis ich das Memory Leak durch eine simple Zeile detektiert wurde, d.h. jedes Mal Programm kompiliert, ausgeführt und im Task-Manager beobachtet. Steigt der Speicher = Loch, bleibt der Speicherverbrauch konstant = kein Loch.<br />
[/cpp]</p>
</blockquote>
<p>Da gibts wesentlich bessere Mittel. In einem anderen Thread wurde die Tage der Link fuer ein Plugin fuer's Visual Studio gepostet, der sowas automatisch macht. Unter Linux hilft dir Valgrind sicher weiter...</p>
<p>Meine Vermutung ist uebrigens, dass du durch das auskommentieren der obgenannten Zeile bewirkt hast, dass der Compiler die ganze Schleife wegoptimiert. Eine einfache Variable in einen std::vector zu pushen kann eigentlich nicht wirklich fuer ein Speicherleck verantwortlich sein. Was macht convertString() denn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1389073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1389073</guid><dc:creator><![CDATA[Blue-Tiger]]></dc:creator><pubDate>Sat, 20 Oct 2007 16:51:38 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Sat, 20 Oct 2007 17:34:30 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/16787">@Aprollo</a>:: gg, wenn man es ganz genau nimmt - stimmt das !! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Blue-Tiger schrieb:</p>
<blockquote>
<p>Da gibts wesentlich bessere Mittel. In einem anderen Thread wurde die Tage der Link fuer ein Plugin fuer's Visual Studio gepostet, der sowas automatisch macht. Unter Linux hilft dir Valgrind sicher weiter...</p>
</blockquote>
<p>Ich arbeite unter Mac OS X - in einer VM habe ich Linux laufen, Valgrind läuft auch schon, aber mit Boost habe ich derzeit meine Probleme... haste Du noch den Namen für das VS .NET Plugin ?</p>
<p>Blue-Tiger schrieb:</p>
<blockquote>
<p>Was macht convertString() denn?</p>
</blockquote>
<p>convertString wandelt mit Hilfe von istringstream den String in einen Double um (siehe unten). Ich kann mir auch nicht vorstellen, daß eine push_back Aktion ein Leak erzeugt - das mir der Intel Compiler die Schleife wegoptimiert... darüber habe ich noch gar nicht nachgedacht, könnte natürlich sein... macht die Suche dann noch schwerer :S</p>
<pre><code class="language-cpp">bool convertString(const std::string &amp;str, double &amp;Val)
{
	std::istringstream tmp(str);
	if (!(tmp &gt;&gt; Val)) return false;

	return true;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1389095</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1389095</guid><dc:creator><![CDATA[Winn]]></dc:creator><pubDate>Sat, 20 Oct 2007 17:34:30 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Sat, 20 Oct 2007 18:45:23 GMT]]></title><description><![CDATA[<p>Winn schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/16787">@Aprollo</a>:: gg, wenn man es ganz genau nimmt - stimmt das !! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Blue-Tiger schrieb:</p>
<blockquote>
<p>Da gibts wesentlich bessere Mittel. In einem anderen Thread wurde die Tage der Link fuer ein Plugin fuer's Visual Studio gepostet, der sowas automatisch macht. Unter Linux hilft dir Valgrind sicher weiter...</p>
</blockquote>
<p>Ich arbeite unter Mac OS X - in einer VM habe ich Linux laufen, Valgrind läuft auch schon, aber mit Boost habe ich derzeit meine Probleme... haste Du noch den Namen für das VS .NET Plugin ?</p>
</blockquote>
<p>IMO ist hier VLD aka Virtual Leak Detector gemeint, allerdings IMO eine Bibliotek(?) und kein Plugin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1389129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1389129</guid><dc:creator><![CDATA[darthdespotism]]></dc:creator><pubDate>Sat, 20 Oct 2007 18:45:23 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Mon, 22 Oct 2007 06:25:12 GMT]]></title><description><![CDATA[<p>Wie genau verwendest du denn diese Klasse?</p>
<p>ich tippe spontan auf sowas:</p>
<pre><code class="language-cpp">abstract* ptr = new derive;
for(...)
  ptr-&gt;testleak();
delete ptr;
</code></pre>
<p>-&gt; und da könnte es Probleme geben, weil der abstact-Dtor nicht virtuell ist (was da passiert, ist undefiniert - meistens beschränkt es sich daraf, daß der Basis-Dtor direkt verwendet wird (und der derive-Teil nicht aufgeräumt wird).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1389714</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1389714</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 22 Oct 2007 06:25:12 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Mon, 22 Oct 2007 12:11:13 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Wie genau verwendest du denn diese Klasse?</p>
<p>ich tippe spontan auf sowas:</p>
<pre><code class="language-cpp">abstract* ptr = new derive;
for(...)
  ptr-&gt;testleak();
delete ptr;
</code></pre>
<p>-&gt; und da könnte es Probleme geben, weil der abstact-Dtor nicht virtuell ist (was da passiert, ist undefiniert - meistens beschränkt es sich daraf, daß der Basis-Dtor direkt verwendet wird (und der derive-Teil nicht aufgeräumt wird).</p>
</blockquote>
<p>Nein, so verwende ich sie nicht... eher etwa so...</p>
<pre><code class="language-cpp">// Einzelobjekt-Erstellung
derive *ptr = new derive[1];
ptr-&gt;doSomething();

// Einfügung in eine Liste
std::vector&lt;class abstract *&gt; ptr_collection;
ptr_collection.push_back(derive);

// Löschung aller Objekte in der Liste;
std::vector&lt;class abstract *&gt;::iterator itObj;
for(itObj = ptr_collection.begin(); itObj != ptr_collection.end(); ++itObj) delete[] (*itObj);
</code></pre>
<p>Könnte es sein, daß wenn ich die Löschung über die &lt;abstract&gt; Klasse vornehme, die Polymorphie nicht per Standard definiert ist... habe gerade gesehen, daß mein &lt;derive&gt; DTOR nicht aufgerufen wird...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1389907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1389907</guid><dc:creator><![CDATA[Winn]]></dc:creator><pubDate>Mon, 22 Oct 2007 12:11:13 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Mon, 22 Oct 2007 12:31:43 GMT]]></title><description><![CDATA[<p>Winn schrieb:</p>
<blockquote>
<p>CStoll schrieb:</p>
<blockquote>
<p>Wie genau verwendest du denn diese Klasse?</p>
<p>ich tippe spontan auf sowas:</p>
<pre><code class="language-cpp">abstract* ptr = new derive;
for(...)
  ptr-&gt;testleak();
delete ptr;
</code></pre>
<p>-&gt; und da könnte es Probleme geben, weil der abstact-Dtor nicht virtuell ist (was da passiert, ist undefiniert - meistens beschränkt es sich daraf, daß der Basis-Dtor direkt verwendet wird (und der derive-Teil nicht aufgeräumt wird).</p>
</blockquote>
<p>Nein, so verwende ich sie nicht... eher etwa so...<br />
[snip]</p>
</blockquote>
<p>Das ist doch genau so - nur daß es etwas tiefer verborgen ist - du verwendest einen 'abstract*', um darüber 'derive'-Objekte zu löschen.<br />
(btw, Arrays von polymorphen Objekten könnten noch weitere Gefahren mit sich bringen - dadurch, daß abgeleitete Objekte normalerweise größer sind als ihre Basisklasse, stimmt die Pointer-Arithmetik nicht mehr.</p>
<blockquote>
<p>Könnte es sein, daß wenn ich die Löschung über die &lt;abstract&gt; Klasse vornehme, die Polymorphie nicht per Standard definiert ist... habe gerade gesehen, daß mein &lt;derive&gt; DTOR nicht aufgerufen wird...</p>
</blockquote>
<p>Das kann nicht nur sein, das ist so. Und um das zu lösen, muß der Destruktor der <strong>Basisklasse</strong> virtuell definiert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1389921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1389921</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 22 Oct 2007 12:31:43 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Mon, 22 Oct 2007 13:35:29 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<blockquote>
<p>Könnte es sein, daß wenn ich die Löschung über die &lt;abstract&gt; Klasse vornehme, die Polymorphie nicht per Standard definiert ist... habe gerade gesehen, daß mein &lt;derive&gt; DTOR nicht aufgerufen wird...</p>
</blockquote>
<p>Das kann nicht nur sein, das ist so. Und um das zu lösen, muß der Destruktor der <strong>Basisklasse</strong> virtuell definiert werden.</p>
</blockquote>
<p>Klasse, Danke CStoll !! Das wars... welch ein &quot;dämlicher&quot; Fehler... gcc hatte mich wohl verstanden, gg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1389990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1389990</guid><dc:creator><![CDATA[Winn]]></dc:creator><pubDate>Mon, 22 Oct 2007 13:35:29 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Mon, 22 Oct 2007 16:40:04 GMT]]></title><description><![CDATA[<p>Normalerweise gibst für diese Fehler meistens Compilerwarnung o_O<br />
Hab zwar daran gedacht, aber dachte der Kompiler würde meckern xd</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1390069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1390069</guid><dc:creator><![CDATA[Aprollo]]></dc:creator><pubDate>Mon, 22 Oct 2007 16:40:04 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Mon, 22 Oct 2007 15:58:36 GMT]]></title><description><![CDATA[<p>nt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1390076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1390076</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 22 Oct 2007 15:58:36 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Mon, 22 Oct 2007 17:02:54 GMT]]></title><description><![CDATA[<p>Aprollo schrieb:</p>
<blockquote>
<p>Normalerweise gibst für diese Fehler meistens Compilerwarnung o_O<br />
Hab zwar daran gedacht, aber dachte der Kompiler würde meckern xd</p>
</blockquote>
<p>Nun, weder der Intel noch der GCC haben gemeckert... das liegt wohl daran, daß ich zwar in der Basisklasse ein &quot;virtuell&quot; vor dem Destruktor hatte, aber auch bei der abgeleiteten Basisklasse <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Nachdem ich die &quot;virtuell&quot; Deklarationen in den abgeleiteten Destrokturen entfernt hatte, verschwand mein Memory Leak... es war wohl einfach zuviel des Guten :S</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1390118</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1390118</guid><dc:creator><![CDATA[Winn]]></dc:creator><pubDate>Mon, 22 Oct 2007 17:02:54 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Mon, 22 Oct 2007 17:36:26 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Und um das zu lösen, muß der Destruktor der <strong>Basisklasse</strong> virtuell definiert werden.</p>
</blockquote>
<blockquote>
<p>Nun, weder der Intel noch der GCC haben gemeckert... das liegt wohl daran, daß ich zwar in der Basisklasse ein &quot;virtuell&quot; vor dem Destruktor hatte, aber auch bei der abgeleiteten Basisklasse <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Nachdem ich die &quot;virtuell&quot; Deklarationen in den abgeleiteten Destrokturen entfernt hatte, verschwand mein Memory Leak... es war wohl einfach zuviel des Guten :S</p>
</blockquote>
<p>Wenn in eine Klassen virtuelle Methoden deklariert sind aber keine virtuellen Destuktor, geben Mingw und VC++ Warnungen aus, weil man zwar die Methode richtig dispatchen kann, aber eine delete anweisung nicht.</p>
<p>2 mal virtuelle sollte nicht der Fehler sein o_O</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1390136</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1390136</guid><dc:creator><![CDATA[Aprollo]]></dc:creator><pubDate>Mon, 22 Oct 2007 17:36:26 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Tue, 23 Oct 2007 06:19:52 GMT]]></title><description><![CDATA[<p>Winn schrieb:</p>
<blockquote>
<p>Aprollo schrieb:</p>
<blockquote>
<p>Normalerweise gibst für diese Fehler meistens Compilerwarnung o_O<br />
Hab zwar daran gedacht, aber dachte der Kompiler würde meckern xd</p>
</blockquote>
<p>Nun, weder der Intel noch der GCC haben gemeckert... das liegt wohl daran, daß ich zwar in der Basisklasse ein &quot;virtuell&quot; vor dem Destruktor hatte, aber auch bei der abgeleiteten Basisklasse <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> Nachdem ich die &quot;virtuell&quot; Deklarationen in den abgeleiteten Destrokturen entfernt hatte, verschwand mein Memory Leak... es war wohl einfach zuviel des Guten :S</p>
</blockquote>
<p>In deinem oben gegebenen Beispiel war der Basis-Dtor <em>nicht</em> virtuell (und ob du den abgeleiteten Dtor virtual definierst, ist dann letztendlich egal)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1390311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1390311</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 23 Oct 2007 06:19:52 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Thu, 25 Oct 2007 09:36:37 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>In deinem oben gegebenen Beispiel war der Basis-Dtor <em>nicht</em> virtuell (und ob du den abgeleiteten Dtor virtual definierst, ist dann letztendlich egal)</p>
</blockquote>
<p>Das stimmt, war auch nur ein Code-Snap... in meinem Produktions-Code war es doppelt &quot;virtuell&quot;, es gab auch keine Warnings... ich kann Euch auch nur wiedergeben, was mir widerfahren ist. GCC compilierte den Code ja einwandfrei, während der Intel Compiler mit dem Doppelten-Lottchen spazieren fuhr...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1391702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1391702</guid><dc:creator><![CDATA[Winn]]></dc:creator><pubDate>Thu, 25 Oct 2007 09:36:37 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Thu, 25 Oct 2007 13:58:20 GMT]]></title><description><![CDATA[<p>intelc und vc machen bei virtuell manchmal durchaus seltsamme dinge.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1391920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1391920</guid><dc:creator><![CDATA[rapsoo]]></dc:creator><pubDate>Thu, 25 Oct 2007 13:58:20 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Thu, 25 Oct 2007 15:41:01 GMT]]></title><description><![CDATA[<p>rapsoo schrieb:</p>
<blockquote>
<p>intelc und vc machen bei virtuell manchmal durchaus seltsamme dinge.</p>
</blockquote>
<p>schmarren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1391989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1391989</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 25 Oct 2007 15:41:01 GMT</pubDate></item><item><title><![CDATA[Reply to Memory Leak mit Intel Compiler, mit GCC aber nicht... on Fri, 26 Oct 2007 12:42:03 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>rapsoo schrieb:</p>
<blockquote>
<p>intelc und vc machen bei virtuell manchmal durchaus seltsamme dinge.</p>
</blockquote>
<p>schmarren.</p>
</blockquote>
<p>Ja, das ist dann das Resultat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1392493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1392493</guid><dc:creator><![CDATA[rapsoo]]></dc:creator><pubDate>Fri, 26 Oct 2007 12:42:03 GMT</pubDate></item></channel></rss>