<?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[Frage zu new &amp;amp; delete]]></title><description><![CDATA[<p>Hi, ich glaub ich hab grad ein Brett vor dem Kopf xD</p>
<pre><code class="language-cpp">struct TEST
{
    int data;
};

TEST *node = 0;

while(1)
{
    node = new TEST;
}
</code></pre>
<p>Ich weiß der Code vollkommener Unsinn, aber wie ist es wenn man immer wieder mit dem selben Zeiger eine neue Instanz erstellt, wird dann automatisch eine Art Array erzeugt ? Ähnlich wie bei Vector.push_back() oder wird der alte Wert von node gelöscht und durch eine neue Instanz ersetzt ?</p>
<p>Gruß Chris</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/187560/frage-zu-new-amp-delete</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 20:37:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/187560.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 20 Jul 2007 22:38:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu new &amp;amp; delete on Fri, 20 Jul 2007 22:38:33 GMT]]></title><description><![CDATA[<p>Hi, ich glaub ich hab grad ein Brett vor dem Kopf xD</p>
<pre><code class="language-cpp">struct TEST
{
    int data;
};

TEST *node = 0;

while(1)
{
    node = new TEST;
}
</code></pre>
<p>Ich weiß der Code vollkommener Unsinn, aber wie ist es wenn man immer wieder mit dem selben Zeiger eine neue Instanz erstellt, wird dann automatisch eine Art Array erzeugt ? Ähnlich wie bei Vector.push_back() oder wird der alte Wert von node gelöscht und durch eine neue Instanz ersetzt ?</p>
<p>Gruß Chris</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1329548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1329548</guid><dc:creator><![CDATA[Foxx90]]></dc:creator><pubDate>Fri, 20 Jul 2007 22:38:33 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu new &amp;amp; delete on Fri, 20 Jul 2007 23:03:16 GMT]]></title><description><![CDATA[<p>es werden verdammt viele instanzen erzeugt, aber der pointer verweist leider nur auf die letzte. auf alle anderen kannst du nicht mehr zugreifen, die kannst du als 'memory leak' abschreiben. <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/1329558</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1329558</guid><dc:creator><![CDATA[Undertaker]]></dc:creator><pubDate>Fri, 20 Jul 2007 23:03:16 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu new &amp;amp; delete on Fri, 20 Jul 2007 23:29:57 GMT]]></title><description><![CDATA[<p>Foxx90 schrieb:</p>
<blockquote>
<p>...wie ist es wenn man immer wieder mit dem selben Zeiger eine neue Instanz erstellt, wird dann automatisch eine Art Array erzeugt ?</p>
</blockquote>
<p>Nein</p>
<blockquote>
<p>Ähnlich wie bei Vector.push_back()</p>
</blockquote>
<p>Nein <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>
<blockquote>
<p>oder wird der alte Wert von node gelöscht und durch eine neue Instanz ersetzt ?</p>
</blockquote>
<p>Nein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Was wirklich passiert hat Undertaker ja schon geschrieben.<br />
(Sorry, aber ich konnt mich nicht zurückhalten - muss an der Hitze liegen)</p>
<p>BTW: du erzeugst nicht &quot;mit dem selben Zeiger&quot; eine neue Instanz. Du erzeugst mit &quot;new TEST&quot; eine neue Instanz, die weiss aber garnix von der Variable &quot;node&quot;. &quot;new&quot; liefert einen Zeiger auf diese neue Instanz zurück, und diesen Zeiger schreibst du in die Zeigervariable &quot;node&quot; rein. Der alte Wert von &quot;node&quot; geht dabei verloren, allerdings nicht das Objekt auf das dieser alte Zeiger gezeigt hat. Da danach aber kein einziger Zeiger mehr existiert der auf das &quot;alte&quot; Objekt zeigt ist es quasi &quot;verloren&quot;. Sprachen mit Garbage-Collection würden es für dich &quot;wegmachen&quot;, C++ tut das aber nicht, in C++ müsstest du es explizit mit &quot;delete&quot; löschen. Was aber nichtmehr geht, da es keinen Zeiger mehr auf das Objekt gibt. D.h. sowas in C++ zu machen ist als Programmierfehler anzusehen.</p>
<p>Vielleicht solltest du dir das Thema Zeiger und Variablen nochmal genauer ansehen, wenn du das mal verstanden hast dann wird dir auch klar sein was genau bei dem von dir geposteten Code passiert und warum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1329568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1329568</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 20 Jul 2007 23:29:57 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu new &amp;amp; delete on Sat, 21 Jul 2007 09:42:53 GMT]]></title><description><![CDATA[<p>Nene, die ganzen Zeigersahcen versteh ich schon, ich wusste nur nich genau was new macht, und wenn man das nich weiß, weiß man auch erstmal nich dass das was mit Zeiger zu tun hat, jetzt weiß ich, das new einen neue Instanz anlegt und einen Zeiger auf diese neue Instanz zurückgibt, aber danke !</p>
<p>Gruß Chris</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1329641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1329641</guid><dc:creator><![CDATA[Foxx90]]></dc:creator><pubDate>Sat, 21 Jul 2007 09:42:53 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu new &amp;amp; delete on Mon, 23 Jul 2007 04:20:30 GMT]]></title><description><![CDATA[<p>[cpp]struct TEST<br />
{<br />
int data;<br />
};</p>
<p>TEST *node = 0;</p>
<p>node = new TEST;</p>
<p>node =0;</p>
<p>würder du sowas machen, würderst du quasie die adresse wo die instanz ist welceh zu erzeugt hast durch 0 ersetzen... somit ist die instanz im speicher nichtmehr ereichbar...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330483</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Mon, 23 Jul 2007 04:20:30 GMT</pubDate></item></channel></rss>