<?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 den alten C-Strings und Speicherleck]]></title><description><![CDATA[<p>Hallo, ich lerne gerade C++ mit dem Primer. Dort bin ich jetzt beim Kapitel, wo es um die C-Strings geht.<br />
Wie hat man früher, als es nur c-strings gab, das Problem mit den Speicherlecks gelöst <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="😕"
    /> zB Folgende Funktion</p>
<pre><code class="language-cpp">std::string do_something()
{
    std::string tmp;
    //string bearbeiten
    return tmp; //kein speicherleck
}

const char* do_something()
{
    char* tmp = new char[x];
    //tmp bearbeiten
    return tmp; //Speicherleck
}
</code></pre>
<p>Wurde damals vom Benutzer erwatet, dass er den Zeiger, den do_something zurückgibt, zwischenspeichert und per hand freigibt? Oder welches Konzept hat man damals verwendet?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/256905/frage-zu-den-alten-c-strings-und-speicherleck</link><generator>RSS for Node</generator><lastBuildDate>Fri, 11 Sep 2026 03:00:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/256905.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 19 Dec 2009 14:48:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu den alten C-Strings und Speicherleck on Sat, 19 Dec 2009 14:48:21 GMT]]></title><description><![CDATA[<p>Hallo, ich lerne gerade C++ mit dem Primer. Dort bin ich jetzt beim Kapitel, wo es um die C-Strings geht.<br />
Wie hat man früher, als es nur c-strings gab, das Problem mit den Speicherlecks gelöst <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="😕"
    /> zB Folgende Funktion</p>
<pre><code class="language-cpp">std::string do_something()
{
    std::string tmp;
    //string bearbeiten
    return tmp; //kein speicherleck
}

const char* do_something()
{
    char* tmp = new char[x];
    //tmp bearbeiten
    return tmp; //Speicherleck
}
</code></pre>
<p>Wurde damals vom Benutzer erwatet, dass er den Zeiger, den do_something zurückgibt, zwischenspeichert und per hand freigibt? Oder welches Konzept hat man damals verwendet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1824985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824985</guid><dc:creator><![CDATA[Snata]]></dc:creator><pubDate>Sat, 19 Dec 2009 14:48:21 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu den alten C-Strings und Speicherleck on Sat, 19 Dec 2009 14:53:31 GMT]]></title><description><![CDATA[<p>Wenn man ungefähr weiß, wie groß der String wird, macht man das so:</p>
<pre><code class="language-cpp">char *do_sth(char *dest, size_t dest_size)
{
	//...
	return dest;
}

..

char buf[256]
do_sth(buf, 256);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1824991</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824991</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Sat, 19 Dec 2009 14:53:31 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu den alten C-Strings und Speicherleck on Sat, 19 Dec 2009 15:06:20 GMT]]></title><description><![CDATA[<p>Oder, was in vielen C-APIs verwendet wird: Man hat zusammengehörige Anforderungs- und Freigabefunktionen. Also eine Art Konstruktoren und Destruktoren, welche man aber manuell aufrufen muss.</p>
<pre><code class="language-cpp">Surface* MySurface = CreateSurface(12, &quot;text&quot;);
// arbeite mit MySurface
DestroySurface(MySurface);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1824998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1824998</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 19 Dec 2009 15:06:20 GMT</pubDate></item></channel></rss>