<?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[Fehler mit Destruktor]]></title><description><![CDATA[<p>Hallo,<br />
ich habe ein Problem beim Erstellen einer Klasse Polynom.<br />
EIn Polynom soll aus einem unsigned int deg bestehen, der den Grad angibt, und aus einem Array der Länge deg+1 für die Koeffizienten.</p>
<p>Als erstes habe ich in der Klasse Polynom eine Memberfunktion<br />
polynom(unsigned int) geschrieben. Diese Funktion erstellt ein Array der Länge deg+1 und füllt das Array mit Nullen.</p>
<p>Hier ist mein Quelltext:</p>
<pre><code>[/cpp]
#include&lt;iostream&gt;

//Polynomklasse
class polynom
{
  private:
    unsigned int M_deg;
    double* M_coeff;

  public:

    //Nullkonstruktor
    polynom(unsigned int n)
    {

      M_coeff= new double[n+1];

      for(unsigned int i=0;i&lt;=n+1;i++)
      {
	M_coeff[i]=0.0;
      }
      std::cout&lt;&lt;&quot;Nullpolynom erzeugt.\n&quot;;
    }

    //Destruktor
    ~polynom()
    {
      delete[] M_coeff;
    }

};

//Hauptprogramm
int main()
{
  unsigned int f_grad=2;
  double f_coeff[]={0.0,0.0,1.0};

  polynom(2);

}
</code></pre>
<p>Das Problem liegt bei meinem Destruktor.<br />
Das Programm lässt sich zwar ohne Fehler compilieren, doch wenn ich es ausführe<br />
bekomme ich als Ausgabe:</p>
<p>Nullpolynom erzeugt.<br />
*** glibc detected *** ./uebung7b: free(): invalid next size (fast): 0x0804b008 ***<br />
======= Backtrace: =========</p>
<p>und dann folgen eine Menge Dateipfade Nullen,Einsen und anderes Zeug.<br />
Aber was habe ich falsch gemacht?<br />
Wenn ich den Destruktor auskommentiere funktioniert alles.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/258832/fehler-mit-destruktor</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 03:05:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/258832.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 15 Jan 2010 17:05:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehler mit Destruktor on Fri, 15 Jan 2010 17:05:08 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe ein Problem beim Erstellen einer Klasse Polynom.<br />
EIn Polynom soll aus einem unsigned int deg bestehen, der den Grad angibt, und aus einem Array der Länge deg+1 für die Koeffizienten.</p>
<p>Als erstes habe ich in der Klasse Polynom eine Memberfunktion<br />
polynom(unsigned int) geschrieben. Diese Funktion erstellt ein Array der Länge deg+1 und füllt das Array mit Nullen.</p>
<p>Hier ist mein Quelltext:</p>
<pre><code>[/cpp]
#include&lt;iostream&gt;

//Polynomklasse
class polynom
{
  private:
    unsigned int M_deg;
    double* M_coeff;

  public:

    //Nullkonstruktor
    polynom(unsigned int n)
    {

      M_coeff= new double[n+1];

      for(unsigned int i=0;i&lt;=n+1;i++)
      {
	M_coeff[i]=0.0;
      }
      std::cout&lt;&lt;&quot;Nullpolynom erzeugt.\n&quot;;
    }

    //Destruktor
    ~polynom()
    {
      delete[] M_coeff;
    }

};

//Hauptprogramm
int main()
{
  unsigned int f_grad=2;
  double f_coeff[]={0.0,0.0,1.0};

  polynom(2);

}
</code></pre>
<p>Das Problem liegt bei meinem Destruktor.<br />
Das Programm lässt sich zwar ohne Fehler compilieren, doch wenn ich es ausführe<br />
bekomme ich als Ausgabe:</p>
<p>Nullpolynom erzeugt.<br />
*** glibc detected *** ./uebung7b: free(): invalid next size (fast): 0x0804b008 ***<br />
======= Backtrace: =========</p>
<p>und dann folgen eine Menge Dateipfade Nullen,Einsen und anderes Zeug.<br />
Aber was habe ich falsch gemacht?<br />
Wenn ich den Destruktor auskommentiere funktioniert alles.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1839423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839423</guid><dc:creator><![CDATA[vogel]]></dc:creator><pubDate>Fri, 15 Jan 2010 17:05:08 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler mit Destruktor on Fri, 15 Jan 2010 17:17:37 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class polynom 
{ 
	private: 
		unsigned int M_deg; 
		double* M_coeff; 

	public: 
	polynom(unsigned int n) :
		  M_coeff(new double[n])
	{ 
		for(unsigned int i = 0; i != n; i++) 
		{ M_coeff[i]=0.0; }

		std::cout&lt;&lt;&quot;Nullpolynom erzeugt.\n&quot;; 
	} 

	~polynom() 
	{ delete[] M_coeff; } 
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1839425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1839425</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Fri, 15 Jan 2010 17:17:37 GMT</pubDate></item></channel></rss>