<?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[Einfache Frage zu new]]></title><description><![CDATA[<p>Hallo,</p>
<p>obwohl dies eine ganz einfache Frage ist, konnte ich leider keine Antwort in einem der mir bekannten Tutorials finden.</p>
<pre><code class="language-cpp">string *i;
i = new string (&quot;Hallo&quot;);
i = new string (&quot;Welt&quot;);
// hier noch irgendwas
delete i;
</code></pre>
<p>Was geschieht hier mit dem Wert &quot;Hallo&quot;? Wird er mit &quot;Welt&quot; überschrieben oder verweist der Zeiger nach dem zweiten new auf einen neuen Speicherbereich und der alte bleibt zurück, ohne dass man noch auf ihn zugreifen kann?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/201742/einfache-frage-zu-new</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 05:54:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/201742.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 03 Jan 2008 16:05:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Einfache Frage zu new on Thu, 03 Jan 2008 16:05:03 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>obwohl dies eine ganz einfache Frage ist, konnte ich leider keine Antwort in einem der mir bekannten Tutorials finden.</p>
<pre><code class="language-cpp">string *i;
i = new string (&quot;Hallo&quot;);
i = new string (&quot;Welt&quot;);
// hier noch irgendwas
delete i;
</code></pre>
<p>Was geschieht hier mit dem Wert &quot;Hallo&quot;? Wird er mit &quot;Welt&quot; überschrieben oder verweist der Zeiger nach dem zweiten new auf einen neuen Speicherbereich und der alte bleibt zurück, ohne dass man noch auf ihn zugreifen kann?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430083</guid><dc:creator><![CDATA[basti33]]></dc:creator><pubDate>Thu, 03 Jan 2008 16:05:03 GMT</pubDate></item><item><title><![CDATA[Reply to Einfache Frage zu new on Thu, 03 Jan 2008 16:19:01 GMT]]></title><description><![CDATA[<p>Also das nennt man dann Memory Leak was daraus entsteht <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="😉"
    /> Du reservierst den Speicher, hast aber dann keine Möglichkeit mehr darauf zuzugreifen, weil du keinen Zeiger auf die Speicheradresse mehr hast und somit den Bereich nicht mehr per delete freigeben kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430100</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430100</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 03 Jan 2008 16:19:01 GMT</pubDate></item><item><title><![CDATA[Reply to Einfache Frage zu new on Thu, 03 Jan 2008 16:53:47 GMT]]></title><description><![CDATA[<p>Hi basti33,</p>
<p>nur mal der Vollständigkeit halber: Du weiß aber schon, dass Du das auch ohne new/delete machen kannst ?</p>
<pre><code class="language-cpp">string i(&quot;Hallo&quot;);
</code></pre>
<p>(sage das nur, weil es ein wenig nach &quot;typischem Java-Umsteigercode&quot; aussieht)</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430124</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 03 Jan 2008 16:53:47 GMT</pubDate></item><item><title><![CDATA[Reply to Einfache Frage zu new on Thu, 03 Jan 2008 17:11:20 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13624">@Simon2</a><br />
Ja, weiß ich und ich hab noch nie Java verwendet <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>
<p>Ich will das auch nicht mit std::string machen, sondern mit selbstdefinierten Typen. Das hier diente nur der Veranschaulichung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430134</guid><dc:creator><![CDATA[basti33]]></dc:creator><pubDate>Thu, 03 Jan 2008 17:11:20 GMT</pubDate></item><item><title><![CDATA[Reply to Einfache Frage zu new on Thu, 03 Jan 2008 17:56:33 GMT]]></title><description><![CDATA[<p>Dann bin ich ja beruhigt. <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/1430162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430162</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 03 Jan 2008 17:56:33 GMT</pubDate></item><item><title><![CDATA[Reply to Einfache Frage zu new on Thu, 03 Jan 2008 19:02:55 GMT]]></title><description><![CDATA[<p>Was genau passiert:</p>
<pre><code class="language-cpp">string *i;
// besser:
string *i = NULL;
</code></pre>
<p>Du erstellst einen Zeiger vom Typ std::string. Der zeigt aber irgendwo ins Nirvana. Also besser auf NULL initialisieren.</p>
<pre><code class="language-cpp">i = new string (&quot;Hallo&quot;);
</code></pre>
<p>Du reservierst Speicher für ein neues Objekt vom Typ std::string und speicherst die Adresse in i.</p>
<pre><code class="language-cpp">i = new string (&quot;Welt&quot;);
</code></pre>
<p>Du reservierst wieder Speicher für ein neues Objekt vom Typ std::string und speicherst die Adresse in i. Der alte String ist im Speicher noch vorhanden, allerdings kennst du jetzt die Adresse nicht mehr. Du hast soeben ein Speicherleck erzeugt.</p>
<pre><code class="language-cpp">delete i;
</code></pre>
<p>Du löschst die Speicherstelle mit dem Inhalt &quot;Welt&quot;. Das vorherige bleibt wie oben geschrieben im Speicher.</p>
<p>Besser:</p>
<pre><code class="language-cpp">string *i;
i = new string (&quot;Hallo&quot;);
delete i;
i = new string (&quot;Welt&quot;);
// hier noch irgendwas
delete i;
</code></pre>
<p>oder:</p>
<pre><code class="language-cpp">string *i;
i = new string (&quot;Hallo&quot;);
i-&gt;append(&quot; Welt&quot;); // einfach Welt anhängen
// hier noch irgendwas
delete i;
</code></pre>
<p>HTH<br />
rya.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430214</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430214</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Thu, 03 Jan 2008 19:02:55 GMT</pubDate></item><item><title><![CDATA[Reply to Einfache Frage zu new on Thu, 03 Jan 2008 19:57:52 GMT]]></title><description><![CDATA[<p>basti33 schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13624">@Simon2</a><br />
Ja, weiß ich und ich hab noch nie Java verwendet <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>
<p>Ich will das auch nicht mit std::string machen, sondern mit selbstdefinierten Typen. Das hier diente nur der Veranschaulichung.</p>
</blockquote>
<p>Aber gilt auch für selbst definierte Typen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430255</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Thu, 03 Jan 2008 19:57:52 GMT</pubDate></item><item><title><![CDATA[Reply to Einfache Frage zu new on Fri, 04 Jan 2008 06:27:00 GMT]]></title><description><![CDATA[<p>Scorcher24 schrieb:</p>
<blockquote>
<p>Besser:</p>
<pre><code class="language-cpp">string *i;
i = new string (&quot;Hallo&quot;);
delete i;
i = new string (&quot;Welt&quot;);
// hier noch irgendwas
delete i;
</code></pre>
</blockquote>
<p>Noch besser:</p>
<pre><code class="language-cpp">std::tr1::shared_ptr&lt;string&gt; i;
i.reset(new string(&quot;Hallo&quot;));
// hier nix mehr ;)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1430385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430385</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Fri, 04 Jan 2008 06:27:00 GMT</pubDate></item></channel></rss>