<?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[delete und delete[]]]></title><description><![CDATA[<p>Hallo,<br />
ich muss doch damit alle DeKonstruktoren aufgerufen werden delete[] verwenden.</p>
<p>Ist es eigentlich tragisch wenn ich immer delete[] benutze ?<br />
Muss ich vor dem &quot;delete&quot; prüfen ob dem Zeiger jemals ein Heap zugeordnet wurde oder mach das delete automatisch ?</p>
<p>danke<br />
gruss<br />
Marcus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/159366/delete-und-delete</link><generator>RSS for Node</generator><lastBuildDate>Thu, 10 Sep 2026 10:40:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/159366.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 14 Sep 2006 11:33:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to delete und delete[] on Thu, 14 Sep 2006 11:33:30 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich muss doch damit alle DeKonstruktoren aufgerufen werden delete[] verwenden.</p>
<p>Ist es eigentlich tragisch wenn ich immer delete[] benutze ?<br />
Muss ich vor dem &quot;delete&quot; prüfen ob dem Zeiger jemals ein Heap zugeordnet wurde oder mach das delete automatisch ?</p>
<p>danke<br />
gruss<br />
Marcus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137209</guid><dc:creator><![CDATA[UserMarcus]]></dc:creator><pubDate>Thu, 14 Sep 2006 11:33:30 GMT</pubDate></item><item><title><![CDATA[Reply to delete und delete[] on Thu, 14 Sep 2006 11:52:56 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>grundsätzlich gilt, wenn du Speicher mit new anforderst, dann wird der mit delete gelöscht. Forderst du Speicher mit new[] an, dann musst du ihn auch mit delete[] löschen!<br />
Ein delete 0; macht einfach gar nichts, dass heißt wenn du deine Zeiger Anfangs immer auf 0 setzt, dann kannst du gefahrlos delete für diese aufrufen!</p>
<p>Nochmal kurz ein wenig Code:</p>
<pre><code class="language-cpp">int *EinObjekt = new int;
int *MehrereObjekte = new int[10];
int *NullPointer = 0;
int *Ohje;

delete EinObjekt;
delete[] MehrereObjekte;
delete NullPointer; //Es passiert nichts
delete Ohje; //Hier wird mit aller Wahrscheinlichkeit krachen!
</code></pre>
<p>KaPtainCugel</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137227</guid><dc:creator><![CDATA[KPC]]></dc:creator><pubDate>Thu, 14 Sep 2006 11:52:56 GMT</pubDate></item><item><title><![CDATA[Reply to delete und delete[] on Thu, 14 Sep 2006 11:54:43 GMT]]></title><description><![CDATA[<p>- statt DeKonstruktoren heißt das Destruktoren<br />
- wenn Du ein Objekt mit new anlegst, dann löscht Du es mit delete<br />
- wenn Du ein Array mit new[] anlegst, dann löscht Du es mit delete[]</p>
<p>Wenn Du versuchst ein NULL-Objekt per delete zu löschen, dann passiert nix (AFAIK)</p>
<p>// typo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137228</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Thu, 14 Sep 2006 11:54:43 GMT</pubDate></item><item><title><![CDATA[Reply to delete und delete[] on Thu, 14 Sep 2006 12:20:41 GMT]]></title><description><![CDATA[<p>Okay, danke für die schnelle Antworten.</p>
<p>D.h. solange ich meine Zeiger immer mit :</p>
<p>pZeiger = 0 oder NULL;</p>
<p>Intializiere kann ich diese immer Gefahrenlos mit</p>
<p>delete[] pZeiger;</p>
<p>löschen egal ob heap reserviert oder nicht und egal ob new[] oder nicht.</p>
<p>gruss<br />
Marcus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137259</guid><dc:creator><![CDATA[UserMarcus]]></dc:creator><pubDate>Thu, 14 Sep 2006 12:20:41 GMT</pubDate></item><item><title><![CDATA[Reply to delete und delete[] on Thu, 14 Sep 2006 12:59:48 GMT]]></title><description><![CDATA[<p>KPC schrieb:</p>
<blockquote>
<p>Ein delete 0; macht einfach gar nichts, dass heißt wenn du deine Zeiger Anfangs immer auf 0 setzt, dann kannst du gefahrlos delete für diese aufrufen!</p>
</blockquote>
<p>das gilt allerdings nur für die deallokationsfunktionen der standard-bibliothek, ein selbstdefinierter operator delete (bzw. delete[]) darf sich anders verhalten. auch deshalb kann es sinnvoll sein, zuerst den zu löschenden pointer auf 0 zu testen; ganz nebenbei kann das zusätzliche optimierungsmöglichkeiten schaffen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137308</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 14 Sep 2006 12:59:48 GMT</pubDate></item><item><title><![CDATA[Reply to delete und delete[] on Thu, 14 Sep 2006 13:43:19 GMT]]></title><description><![CDATA[<p>Sehe die Frage noch nicht ganz beantwortet, ob man immer delete[] verwendne darf:</p>
<pre><code class="language-cpp">T* objPtr = new T;
   delete [] objPtr;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1137351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137351</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Thu, 14 Sep 2006 13:43:19 GMT</pubDate></item><item><title><![CDATA[Reply to delete und delete[] on Thu, 14 Sep 2006 13:58:08 GMT]]></title><description><![CDATA[<p>templäd schrieb:</p>
<blockquote>
<p>Sehe die Frage noch nicht ganz beantwortet, ob man immer delete[] verwendne darf:</p>
<pre><code class="language-cpp">T* objPtr = new T;
   delete [] objPtr;
</code></pre>
</blockquote>
<p>das hat undefiniertes verhalten zur folge. die form des delete <em>muss</em> zum verwendeten new passen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137370</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 14 Sep 2006 13:58:08 GMT</pubDate></item><item><title><![CDATA[Reply to delete und delete[] on Thu, 14 Sep 2006 14:47:23 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>KPC schrieb:</p>
<blockquote>
<p>Ein delete 0; macht einfach gar nichts, dass heißt wenn du deine Zeiger Anfangs immer auf 0 setzt, dann kannst du gefahrlos delete für diese aufrufen!</p>
</blockquote>
<p>das gilt allerdings nur für die deallokationsfunktionen der standard-bibliothek, ein selbstdefinierter operator delete (bzw. delete[]) darf sich anders verhalten. auch deshalb kann es sinnvoll sein, zuerst den zu löschenden pointer auf 0 zu testen; ganz nebenbei kann das zusätzliche optimierungsmöglichkeiten schaffen.</p>
</blockquote>
<p>Eine eigene Deallokationsfunktion sollte das verhalten für Nullzeiger nachahmen.</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1137408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1137408</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Thu, 14 Sep 2006 14:47:23 GMT</pubDate></item></channel></rss>