<?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[chars löschen oder nicht?]]></title><description><![CDATA[<p>Hoi Hoi,</p>
<p>Ich bin auf ein Problem gestoßen.</p>
<p>Folgendes: Ich habe eine Methode aus einer Bibliothek, diese nimmt ein const char* Argument an.</p>
<p>Jetzt besitze ich aber ein char array, das ich angelegt hatte mit:</p>
<p>char *p = new char[30];</p>
<p>Wenn ich den Pointer nun übergebe, muss ich das denn noch löschen? Und wenn ja, wann? Kann ich folgendes machen:</p>
<p>die_funktion(p);<br />
delete(p);</p>
<p>oder muss ich warten, bis &quot;die_funktion&quot; nicht mehr auf den Speicherplatz zugreift? Ich danke euch viemals.</p>
<p>Bis dann.</p>
<p>donnerCobra</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/251050/chars-löschen-oder-nicht</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 17:58:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/251050.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 28 Sep 2009 15:44:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to chars löschen oder nicht? on Mon, 28 Sep 2009 15:44:41 GMT]]></title><description><![CDATA[<p>Hoi Hoi,</p>
<p>Ich bin auf ein Problem gestoßen.</p>
<p>Folgendes: Ich habe eine Methode aus einer Bibliothek, diese nimmt ein const char* Argument an.</p>
<p>Jetzt besitze ich aber ein char array, das ich angelegt hatte mit:</p>
<p>char *p = new char[30];</p>
<p>Wenn ich den Pointer nun übergebe, muss ich das denn noch löschen? Und wenn ja, wann? Kann ich folgendes machen:</p>
<p>die_funktion(p);<br />
delete(p);</p>
<p>oder muss ich warten, bis &quot;die_funktion&quot; nicht mehr auf den Speicherplatz zugreift? Ich danke euch viemals.</p>
<p>Bis dann.</p>
<p>donnerCobra</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785512</guid><dc:creator><![CDATA[DonnerCobra]]></dc:creator><pubDate>Mon, 28 Sep 2009 15:44:41 GMT</pubDate></item><item><title><![CDATA[Reply to chars löschen oder nicht? on Mon, 28 Sep 2009 15:54:22 GMT]]></title><description><![CDATA[<p>Ja, du musst dieses Array natürlich noch löschen.</p>
<p>Grundsätzlich musst du warten bis die_funktion(p) nicht mehr auf diesen Speicher zugreift, das ist aber hier:</p>
<pre><code>die_funktion(p);
delete p;
</code></pre>
<p>der Fall. die_funktion(p) ist zum Zeitpunkt des delete ja bereits beendet.</p>
<p>Einzig und allein aufpassen musst du bei asynchronen Aufrufen, bspw. wenn du einen die_funktion(p) als Thread startest, etc. ... denke aber, soweit bist du noch nicht.</p>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785520</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Mon, 28 Sep 2009 15:54:22 GMT</pubDate></item><item><title><![CDATA[Reply to chars löschen oder nicht? on Mon, 28 Sep 2009 16:10:13 GMT]]></title><description><![CDATA[<p>ACHTUNG!!!</p>
<p>wenn du new [] zum alloziieren verwendest, musst du auch delete [] zum freigeben nutzen!</p>
<p>also:</p>
<pre><code class="language-cpp">// für arrays
char* buf = new char[40];
delete[] buf;

// für einzelne instanzen
foo* bar = new foo();
delete bar;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1785531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785531</guid><dc:creator><![CDATA[DrakoXP]]></dc:creator><pubDate>Mon, 28 Sep 2009 16:10:13 GMT</pubDate></item><item><title><![CDATA[Reply to chars löschen oder nicht? on Mon, 28 Sep 2009 17:56:05 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>danke sehr für eure Hilfe. Nunja, das Problem ist, dass die Funktion tatsächlich in einem seperaten Thread ausgeführt wird. Ich habe bisher immer String Klassen benutzt, und dort repräsentiert ja ein Objekt direkt das ganze array, dort fand ich das weniger als Problem.</p>
<p>Aber anscheinend muss ich dann tatsächlich alles bis auf den Abbruch des Programmes verschieben. Danke erstmal <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>Und danke für den Hinweis mit delete[]. Das war nur ein schreibfehler. Danke <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>Bye.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785581</guid><dc:creator><![CDATA[donnerCobra2]]></dc:creator><pubDate>Mon, 28 Sep 2009 17:56:05 GMT</pubDate></item><item><title><![CDATA[Reply to chars löschen oder nicht? on Mon, 28 Sep 2009 21:28:59 GMT]]></title><description><![CDATA[<p>Frage, wäre es nicht hilfreich, wenn die Doku Informationen enthält, ob dass entsprechende char array intern in der Funktion noch mal kopiert wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785655</guid><dc:creator><![CDATA[donnerCobra2]]></dc:creator><pubDate>Mon, 28 Sep 2009 21:28:59 GMT</pubDate></item><item><title><![CDATA[Reply to chars löschen oder nicht? on Mon, 28 Sep 2009 21:34:27 GMT]]></title><description><![CDATA[<p>donnerCobra2 schrieb:</p>
<blockquote>
<p>Frage, wäre es nicht hilfreich, wenn die Doku Informationen enthält, ob dass entsprechende char array intern in der Funktion noch mal kopiert wird?</p>
</blockquote>
<p>Wozu sollte dich als Funktionsanwender dies interessieren? Die Funktion wird schon hinter sich aufräumen und das Interface wird so sein, dass die Funktion genau die Art von Parameter annimmt die sie braucht. Zumindest wenn der Programmierer der Funktion keinen mist gemacht hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785659</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 28 Sep 2009 21:34:27 GMT</pubDate></item></channel></rss>