<?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[Dynamische Speicheralloktion|Mehrdimensionales Array und Stringklasse]]></title><description><![CDATA[<p>Ich hab ein paar fragen zur Speicheralloktion mit new[] und delete[] in Mehrdimensionalen Arrays und der Stringklasse.</p>
<p>Muss man bei mehrdimensionalen Arrays jedes Unterelement einzeln deleten bevor man das komplette Array deletet?</p>
<pre><code class="language-cpp">//str ist ein mehrdimensionales array mit new erzeugt

str[2][4] = 'c';

for (int j = 0; j &lt; _ersteDim; j++){
  delete [] str[j] ;
}
delete [] str;
</code></pre>
<p>Da eine Instanz der Stringklasse, glaub ich jedenfalls, auch ein Array ist... muss ich sie speziell einzeln deleten, wenn ich sie zum Beispiel in einem Array in einer Klasse verwende.</p>
<pre><code class="language-cpp">class sample{
string *beispiel;

sample(){
beispiel = new string[2];
beispiel[0] = &quot;TEST&quot;;
beispiel[1] = &quot;BEISPIEL&quot;;
}
~sample(){
//soll ich jetzt alles einzeln deleten oder kann ich einfach delete [] beispiel 
//machen oder muss ich den destruktor von der stringklasse aufrufen
//http://www.cplusplus.com/reference/string/string/ hier steht nix darüber
}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/239560/dynamische-speicheralloktion-mehrdimensionales-array-und-stringklasse</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 10:30:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/239560.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 24 Apr 2009 20:36:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dynamische Speicheralloktion|Mehrdimensionales Array und Stringklasse on Fri, 24 Apr 2009 20:36:53 GMT]]></title><description><![CDATA[<p>Ich hab ein paar fragen zur Speicheralloktion mit new[] und delete[] in Mehrdimensionalen Arrays und der Stringklasse.</p>
<p>Muss man bei mehrdimensionalen Arrays jedes Unterelement einzeln deleten bevor man das komplette Array deletet?</p>
<pre><code class="language-cpp">//str ist ein mehrdimensionales array mit new erzeugt

str[2][4] = 'c';

for (int j = 0; j &lt; _ersteDim; j++){
  delete [] str[j] ;
}
delete [] str;
</code></pre>
<p>Da eine Instanz der Stringklasse, glaub ich jedenfalls, auch ein Array ist... muss ich sie speziell einzeln deleten, wenn ich sie zum Beispiel in einem Array in einer Klasse verwende.</p>
<pre><code class="language-cpp">class sample{
string *beispiel;

sample(){
beispiel = new string[2];
beispiel[0] = &quot;TEST&quot;;
beispiel[1] = &quot;BEISPIEL&quot;;
}
~sample(){
//soll ich jetzt alles einzeln deleten oder kann ich einfach delete [] beispiel 
//machen oder muss ich den destruktor von der stringklasse aufrufen
//http://www.cplusplus.com/reference/string/string/ hier steht nix darüber
}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1700930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1700930</guid><dc:creator><![CDATA[Razor123]]></dc:creator><pubDate>Fri, 24 Apr 2009 20:36:53 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische Speicheralloktion|Mehrdimensionales Array und Stringklasse on Fri, 24 Apr 2009 22:53:05 GMT]]></title><description><![CDATA[<p>Razor123 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">//str ist ein mehrdimensionales array mit new erzeugt
</code></pre>
</blockquote>
<p>Ich nehm aber mal sowas an (wobei <code>T</code> für einen Typen steht), nächstes Mal bitte genau sagen, wie. <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>
<pre><code class="language-cpp">T** Ptr = new T[Width];
for (size_t i = 0; i &lt; Width; ++i)
    Ptr[i] = new T[Height];
</code></pre>
<p>In diesem Falle musst du entsprechend in umgekehrter Reihenfolge freigeben. Für jedes <code>new</code> ein <code>delete</code> und jedes <code>new[]</code> ein <code>delete[]</code> .</p>
<pre><code class="language-cpp">for (size_t i = 0; i &lt; Width; ++i)
    delete[] Ptr[i];
delete[] Ptr;
</code></pre>
<p>Es sei noch angemerkt, dass es in C++ hilfreiche Klassen gibt, die einem die Speicherverwaltung abnehmen. Vielleicht willst du dir dazu den <a href="http://magazin.c-plusplus.net/artikel/Aufbau%20der%20STL%20-%20Teil%201%3A%20Container" rel="nofollow">Artikel über die STL</a> anschauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1700968</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1700968</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 24 Apr 2009 22:53:05 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische Speicheralloktion|Mehrdimensionales Array und Stringklasse on Sat, 25 Apr 2009 15:36:58 GMT]]></title><description><![CDATA[<p>genau so hab ich das gemeint ^^</p>
<p>gut danke ...</p>
<p>hab inzwischen auch raus das die c++-stl-string-arrays nur mit delete[] deletet werden müssen ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1701176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1701176</guid><dc:creator><![CDATA[Razor123]]></dc:creator><pubDate>Sat, 25 Apr 2009 15:36:58 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamische Speicheralloktion|Mehrdimensionales Array und Stringklasse on Sat, 25 Apr 2009 19:29:28 GMT]]></title><description><![CDATA[<p>Razor123 schrieb:</p>
<blockquote>
<p>c++-stl-string-arrays nur mit delete[] deletet werden müssen ^^</p>
</blockquote>
<p>Was meinst du? Der Begriff STL scheint hier fehl am Platz zu sein...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1701270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1701270</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 25 Apr 2009 19:29:28 GMT</pubDate></item></channel></rss>