<?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[Heap Error &#x2F; Assertion failure]]></title><description><![CDATA[<pre><code>#include &lt;iostream&gt;
using namespace std;

class Array {
private:
	string *s;
	int i;
public:
	Array(int i) : i(i) {
		s = new string[i];
	}

	string&amp; operator[](int i) {
		if( i&gt;= 0 &amp;&amp; i &lt; this-&gt;i) {
			return s[i];
		}
		throw(&quot;Out of Bounds&quot;);
	}

	~Array() {
		delete s;
	}

	void bigger(int i) {
		delete s;
		s = new string[i];
                this-&gt;i = i;
	}
};

int main() {

	Array arr(10);
	arr.bigger(20);

	getchar();
}
</code></pre>
<p>Hey kriege einen Heap Error weiß aber nicht wieso die Funktion bigger kann ruhig das Array mit Inhalt zerstören das ist nicht schlimm mir geht es darum wieso ich einen Heap Error bekomme. Der Fehler entsteht bei der Methode bigger undzwar bei delete s</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/321059/heap-error-assertion-failure</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Jul 2026 13:14:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/321059.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 22 Oct 2013 12:53:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Heap Error &#x2F; Assertion failure on Tue, 22 Oct 2013 12:53:32 GMT]]></title><description><![CDATA[<pre><code>#include &lt;iostream&gt;
using namespace std;

class Array {
private:
	string *s;
	int i;
public:
	Array(int i) : i(i) {
		s = new string[i];
	}

	string&amp; operator[](int i) {
		if( i&gt;= 0 &amp;&amp; i &lt; this-&gt;i) {
			return s[i];
		}
		throw(&quot;Out of Bounds&quot;);
	}

	~Array() {
		delete s;
	}

	void bigger(int i) {
		delete s;
		s = new string[i];
                this-&gt;i = i;
	}
};

int main() {

	Array arr(10);
	arr.bigger(20);

	getchar();
}
</code></pre>
<p>Hey kriege einen Heap Error weiß aber nicht wieso die Funktion bigger kann ruhig das Array mit Inhalt zerstören das ist nicht schlimm mir geht es darum wieso ich einen Heap Error bekomme. Der Fehler entsteht bei der Methode bigger undzwar bei delete s</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2362130</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2362130</guid><dc:creator><![CDATA[realEngine2000]]></dc:creator><pubDate>Tue, 22 Oct 2013 12:53:32 GMT</pubDate></item><item><title><![CDATA[Reply to Heap Error &#x2F; Assertion failure on Tue, 22 Oct 2013 12:56:38 GMT]]></title><description><![CDATA[<p>new[]<br />
verlangt<br />
delete[]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2362132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2362132</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Tue, 22 Oct 2013 12:56:38 GMT</pubDate></item><item><title><![CDATA[Reply to Heap Error &#x2F; Assertion failure on Tue, 22 Oct 2013 13:01:10 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>new[]<br />
verlangt<br />
delete[]</p>
</blockquote>
<p>new[] verlangt vector. <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>Das sieht man schon da dran, dass hier neben dem fehlenden delete noch eine ganze Reihe anderer Sachen falsch gemacht wurden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2362134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2362134</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 22 Oct 2013 13:01:10 GMT</pubDate></item><item><title><![CDATA[Reply to Heap Error &#x2F; Assertion failure on Tue, 22 Oct 2013 13:07:43 GMT]]></title><description><![CDATA[<p>Ah danke Shade. Hmm was ist noch falsch ? Also es fehlt ein Kopierkonstruktor und die Operatorüberladung für das Gleichheitszeichen um flache Kopien zu vermeiden. Was ist noch falsch ???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2362135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2362135</guid><dc:creator><![CDATA[realEngine2000]]></dc:creator><pubDate>Tue, 22 Oct 2013 13:07:43 GMT</pubDate></item><item><title><![CDATA[Reply to Heap Error &#x2F; Assertion failure on Tue, 22 Oct 2013 13:15:32 GMT]]></title><description><![CDATA[<p>realEngine2000 schrieb:</p>
<blockquote>
<p>Ah danke Shade. Hmm was ist noch falsch ? Also es fehlt ein Kopierkonstruktor und die Operatorüberladung für das Gleichheitszeichen um flache Kopien zu vermeiden. Was ist noch falsch ???</p>
</blockquote>
<p>Ist das nicht schlimm genug, wenn die fehlen? Ich habe durchaus auch bedenken, dass du die korrekt implementierst, angesichts anderer Fehler: Was passiert beispielsweise, wenn in Zeilen 11 oder 27 eine Exception fliegt und dadurch (oder später) der Destruktor aufgerufen wird? Abgesehen davon gibt es auch noch lauter Kleinigkeiten, wie fehlende Header, unbenutzte Header, komische Datentypen (int für eine Größenangabe?) und fehlende const-correctness.</p>
<p>So wirklich gefallen mag mir die Implementierung sowieso nicht. Alles, was sie kann, kann vector auch, und das zudem noch besser. Wieso also nicht direkt vector benutzen oder wenigstens vector so gut wie möglich nachprogrammieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2362140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2362140</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 22 Oct 2013 13:15:32 GMT</pubDate></item></channel></rss>