<?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[Speicherfehler( delete[]&#x2F; new)]]></title><description><![CDATA[<p>Hallo,<br />
ich schreibe im Moment ein kleines Programm und habe ein Speicherfehler beim freigeben von meinem Speicher!?<br />
Ich mache folgendes:</p>
<pre><code class="language-cpp">myclass::myclass{

float** points;
points = new float* [2];
points[0]= new float [ANZAHL];
points[1]= new float [ANZAHL];
//...........
}

myclass::~myclass{

    delete[] points[0];
    delete[] points[1];
    delete points;

//.............

}
//..............

void myclass::methode(){

delete[] points[0];
delete[] points[1];

points[0]= new float [NEUE_ANZAHL];
points[1]= new float [NEUE_ANZAHL];

return;

}
</code></pre>
<p>Der Speicherfehler tritt beim aufrufen von methode auf und zwar beim delete[] points[0];.<br />
Ich habe keinen Plan warum es dabei Probleme geben soll ?<br />
Ich würde mich sehr über Hilfe freuen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/224696/speicherfehler-delete-new</link><generator>RSS for Node</generator><lastBuildDate>Fri, 02 Oct 2026 04:20:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/224696.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 14 Oct 2008 06:00:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Speicherfehler( delete[]&#x2F; new) on Tue, 14 Oct 2008 06:00:17 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich schreibe im Moment ein kleines Programm und habe ein Speicherfehler beim freigeben von meinem Speicher!?<br />
Ich mache folgendes:</p>
<pre><code class="language-cpp">myclass::myclass{

float** points;
points = new float* [2];
points[0]= new float [ANZAHL];
points[1]= new float [ANZAHL];
//...........
}

myclass::~myclass{

    delete[] points[0];
    delete[] points[1];
    delete points;

//.............

}
//..............

void myclass::methode(){

delete[] points[0];
delete[] points[1];

points[0]= new float [NEUE_ANZAHL];
points[1]= new float [NEUE_ANZAHL];

return;

}
</code></pre>
<p>Der Speicherfehler tritt beim aufrufen von methode auf und zwar beim delete[] points[0];.<br />
Ich habe keinen Plan warum es dabei Probleme geben soll ?<br />
Ich würde mich sehr über Hilfe freuen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1598541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1598541</guid><dc:creator><![CDATA[shorty0802]]></dc:creator><pubDate>Tue, 14 Oct 2008 06:00:17 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherfehler( delete[]&#x2F; new) on Tue, 14 Oct 2008 06:17:00 GMT]]></title><description><![CDATA[<p>shorty0802 schrieb:</p>
<blockquote>
<p>Der Speicherfehler tritt beim aufrufen von methode auf und zwar beim delete[] points[0];.</p>
</blockquote>
<p>Vermutlich kopierst du irgendwo ein Objekt dieser Klasse, hast aber keinen Copykonstruktor/Zuweisungsoperator.</p>
<p>Am einfachsten löst du das, indem du statt new/delete std::vector verwendest. Genau dafür ist der da.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1598545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1598545</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 14 Oct 2008 06:17:00 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherfehler( delete[]&#x2F; new) on Tue, 14 Oct 2008 09:01:48 GMT]]></title><description><![CDATA[<p>Und delete points; müsste doch auch delete[] points; sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1598628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1598628</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 14 Oct 2008 09:01:48 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherfehler( delete[]&#x2F; new) on Tue, 14 Oct 2008 10:19:26 GMT]]></title><description><![CDATA[<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Und delete points; müsste doch auch delete[] points; sein.</p>
</blockquote>
<p>Sicher? points ist doch nur ein Zeiger auf <strong>einen</strong>Zeiger; beim new ist nur für einen einzigen Zeiger Speicherplatz reserviert worden, nicht für ein Array.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1598673</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1598673</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Tue, 14 Oct 2008 10:19:26 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherfehler( delete[]&#x2F; new) on Tue, 14 Oct 2008 10:22:40 GMT]]></title><description><![CDATA[<p>Belli schrieb:</p>
<blockquote>
<p>Sicher?</p>
</blockquote>
<p>Ja.</p>
<p>Belli schrieb:</p>
<blockquote>
<p>points ist doch nur ein Zeiger auf <strong>einen</strong>Zeiger; beim new ist nur für einen einzigen Zeiger Speicherplatz reserviert worden, nicht für ein Array.</p>
</blockquote>
<p>Da steht new float* <strong>[2]</strong>. Aber selbst wenn da [1] stehen würde: points wurde mit new[] alloziiert, also muss es mit delete[] freigegeben werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1598675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1598675</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 14 Oct 2008 10:22:40 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherfehler( delete[]&#x2F; new) on Tue, 14 Oct 2008 10:27:20 GMT]]></title><description><![CDATA[<p>Schei...!</p>
<p>Keine Ahnung, was ich da gesehen zu haben glaube! Stimmt natürlich!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1598678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1598678</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Tue, 14 Oct 2008 10:27:20 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherfehler( delete[]&#x2F; new) on Tue, 14 Oct 2008 12:42:40 GMT]]></title><description><![CDATA[<p>eigendlich könntest du das äussere array auch statisch machen<br />
also</p>
<pre><code class="language-cpp">float *points[2];
points[0]= new float [ANZAHL];
points[1]= new float [ANZAHL];

// ----

delete[] points[0];
delete[] points[1];
</code></pre>
<p>so musst du dich wenigstens nicht um dadrum kümmmern, kommt halt auf dein problem an...</p>
<p>aber ansonsten:</p>
<pre><code class="language-cpp">class c 
{
    std::vector&lt; std::vector&lt;float&gt; &gt; points(2, std::vector&lt;float&gt;(ANZAHL));
    // sollte so klappen wenn nicht:
    /* std::vector&lt; std::vector&lt;float&gt; &gt; points(2);
       points[0].resize(ANZAHL);
       points[1].resize(ANZAHL);
    */
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1598776</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1598776</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Tue, 14 Oct 2008 12:42:40 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherfehler( delete[]&#x2F; new) on Wed, 15 Oct 2008 00:01:10 GMT]]></title><description><![CDATA[<p>Danke für die Hilfe!</p>
<p>Dann werd ichs wohl mit der Vector Klasse machen müssem.<br />
Ich kopier eigentlich keine Objekte, ich fands nur komisch dass beim freigeben von Speicher was falsch laufen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1599070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1599070</guid><dc:creator><![CDATA[shorty0802]]></dc:creator><pubDate>Wed, 15 Oct 2008 00:01:10 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherfehler( delete[]&#x2F; new) on Wed, 15 Oct 2008 05:38:52 GMT]]></title><description><![CDATA[<p>shorty0802 schrieb:</p>
<blockquote>
<p>Ich kopier eigentlich keine Objekte,</p>
</blockquote>
<p>Und uneigentlich? Hast du irgendwelche Funktionen, die myclass-Parameter haben? Dann wird da schon kopiert.</p>
<p>shorty0802 schrieb:</p>
<blockquote>
<p>ich fands nur komisch dass beim freigeben von Speicher was falsch laufen kann.</p>
</blockquote>
<p>Was da falsch läuft, ist vermutlich, dass du etwas freigeben willst, was bereits freigegeben wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1599081</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1599081</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Wed, 15 Oct 2008 05:38:52 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherfehler( delete[]&#x2F; new) on Wed, 15 Oct 2008 05:42:10 GMT]]></title><description><![CDATA[<p>shorty0802 schrieb:</p>
<blockquote>
<p>Ich kopier eigentlich keine Objekte</p>
</blockquote>
<p>In diesem Fall solltest du den Copy-Konstruktor und den Zuweisungsoperator private machen. Falls du doch aus Versehen kopierst, wirst du so einen Compilerfehler bekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1599084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1599084</guid><dc:creator><![CDATA[7H3 N4C3R]]></dc:creator><pubDate>Wed, 15 Oct 2008 05:42:10 GMT</pubDate></item></channel></rss>