<?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[speicherleak in hashtabelle mit separate chaining]]></title><description><![CDATA[<p>hallo leute!</p>
<p>bin mit meinem programm fertig und alles funktioniert. nur habe ich festgestellt, dass nach ausführlichem testen jede menge bytes übrig bleiben.</p>
<p>meine programmierkenntnisse sind nicht die besten, habe erst seit nem guten halben jahr erfahrung mit c++ und das auch nicht allzu intensiv.</p>
<p>zu meinem programm:</p>
<p>ich habe eine klasse bucket erstellt:</p>
<pre><code class="language-cpp">template &lt;typename E&gt; 
 class Bucket {

 public:
	E key;																							
	Bucket *next;   																	
	 Bucket() : next(NULL){}
    ~Bucket () {
 		  Bucket *freeme;

	    while (next) {
		     freeme = next; 
		     next = next-&gt;next;
 		     delete freeme;
  	  }
  	}
 };
</code></pre>
<p>und eine klasse hashtable:</p>
<pre><code class="language-cpp">template &lt;typename E&gt;
 class ContSepChain : public Container&lt;E&gt; {

   size_t tablesize;								
Bucket&lt;E&gt; **array;
   size_t n;

 public:

//hier sind die ganzen methoden wie z.b. add, remove usw.
....
</code></pre>
<p>ich weiß auch, dass beim addn irgndwo speicherleaks entstehen, jedoch bekomm ich diese nicht weg.</p>
<p>die add sieht in etwas so aus:</p>
<pre><code class="language-cpp">...

for (size_t i = 0; i &lt; len; i++){

		if ( !member(e[i]) ){

			size_t pos = hash( e[i] );

			Bucket&lt;E&gt;* neuBuck = new Bucket&lt;E&gt;();
			neuBuck-&gt;key = e[i];
			neuBuck-&gt;next = array[pos];
			array[pos] = neuBuck;
			n++;

...
</code></pre>
<p>der destructor sieht folgendermaßen aus:</p>
<pre><code class="language-cpp">template &lt;typename E&gt;
 ContSepChain&lt;E&gt;::~ContSepChain( ){

 for (size_t i = 0; i &lt; tablesize; i++) {
	Bucket&lt;E&gt;* bucket = array[i];

	while (bucket) {
		Bucket&lt;E&gt;* freeme;
		freeme = bucket;
		bucket = bucket-&gt;next;
		delete freeme;
	}
	delete bucket;
 }
 delete[] array;

 }
</code></pre>
<p>falls jemand zeit und lust hat mir zu helfen, würde ich mich sehr freuen! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/243450/speicherleak-in-hashtabelle-mit-separate-chaining</link><generator>RSS for Node</generator><lastBuildDate>Sat, 04 Apr 2026 15:37:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/243450.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 16 Jun 2009 19:55:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Tue, 16 Jun 2009 19:59:34 GMT]]></title><description><![CDATA[<p>hallo leute!</p>
<p>bin mit meinem programm fertig und alles funktioniert. nur habe ich festgestellt, dass nach ausführlichem testen jede menge bytes übrig bleiben.</p>
<p>meine programmierkenntnisse sind nicht die besten, habe erst seit nem guten halben jahr erfahrung mit c++ und das auch nicht allzu intensiv.</p>
<p>zu meinem programm:</p>
<p>ich habe eine klasse bucket erstellt:</p>
<pre><code class="language-cpp">template &lt;typename E&gt; 
 class Bucket {

 public:
	E key;																							
	Bucket *next;   																	
	 Bucket() : next(NULL){}
    ~Bucket () {
 		  Bucket *freeme;

	    while (next) {
		     freeme = next; 
		     next = next-&gt;next;
 		     delete freeme;
  	  }
  	}
 };
</code></pre>
<p>und eine klasse hashtable:</p>
<pre><code class="language-cpp">template &lt;typename E&gt;
 class ContSepChain : public Container&lt;E&gt; {

   size_t tablesize;								
Bucket&lt;E&gt; **array;
   size_t n;

 public:

//hier sind die ganzen methoden wie z.b. add, remove usw.
....
</code></pre>
<p>ich weiß auch, dass beim addn irgndwo speicherleaks entstehen, jedoch bekomm ich diese nicht weg.</p>
<p>die add sieht in etwas so aus:</p>
<pre><code class="language-cpp">...

for (size_t i = 0; i &lt; len; i++){

		if ( !member(e[i]) ){

			size_t pos = hash( e[i] );

			Bucket&lt;E&gt;* neuBuck = new Bucket&lt;E&gt;();
			neuBuck-&gt;key = e[i];
			neuBuck-&gt;next = array[pos];
			array[pos] = neuBuck;
			n++;

...
</code></pre>
<p>der destructor sieht folgendermaßen aus:</p>
<pre><code class="language-cpp">template &lt;typename E&gt;
 ContSepChain&lt;E&gt;::~ContSepChain( ){

 for (size_t i = 0; i &lt; tablesize; i++) {
	Bucket&lt;E&gt;* bucket = array[i];

	while (bucket) {
		Bucket&lt;E&gt;* freeme;
		freeme = bucket;
		bucket = bucket-&gt;next;
		delete freeme;
	}
	delete bucket;
 }
 delete[] array;

 }
</code></pre>
<p>falls jemand zeit und lust hat mir zu helfen, würde ich mich sehr freuen! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727882</guid><dc:creator><![CDATA[notnerdyet]]></dc:creator><pubDate>Tue, 16 Jun 2009 19:59:34 GMT</pubDate></item><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Tue, 16 Jun 2009 20:06:55 GMT]]></title><description><![CDATA[<p>notnerdyet schrieb:</p>
<blockquote>
<p>falls jemand zeit und lust hat mir zu helfen, würde ich mich sehr freuen! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Also ich nicht.</p>
<p>Tschüß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727885</guid><dc:creator><![CDATA[Snoppy]]></dc:creator><pubDate>Tue, 16 Jun 2009 20:06:55 GMT</pubDate></item><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Tue, 16 Jun 2009 20:09:16 GMT]]></title><description><![CDATA[<p>Snoppy schrieb:</p>
<blockquote>
<p>notnerdyet schrieb:</p>
<blockquote>
<p>falls jemand zeit und lust hat mir zu helfen, würde ich mich sehr freuen! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Also ich nicht.</p>
<p>Tschüß</p>
</blockquote>
<p>hohoho .. ein scherzkeks. das interessiert mich nun mal garnicht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727890</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727890</guid><dc:creator><![CDATA[notnerdyet]]></dc:creator><pubDate>Tue, 16 Jun 2009 20:09:16 GMT</pubDate></item><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Tue, 16 Jun 2009 20:21:16 GMT]]></title><description><![CDATA[<p>Falsches Forum: korrekt wäre C++<br />
Bitte mal verschieben.<br />
Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727895</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Tue, 16 Jun 2009 20:21:16 GMT</pubDate></item><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Tue, 16 Jun 2009 20:37:32 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-18363.html" rel="nofollow">Jochen Kalmbach</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-58.html" rel="nofollow">C++/CLI mit .NET</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727901</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Tue, 16 Jun 2009 20:37:32 GMT</pubDate></item><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Tue, 16 Jun 2009 20:48:21 GMT]]></title><description><![CDATA[<p>Sry, aber das liest sich doch keiner durch...</p>
<pre><code class="language-cpp">~Bucket () {
           Bucket *freeme;

        while (next) {
             freeme = next; 
             next = next-&gt;next;
              delete freeme;
        }
      }
</code></pre>
<p>normalerweise geht so was mit kleinen fkt viel hübscher + übersichtlicher - idR braucht man auch ein clear in der klasse und ruft das einfach auf...<br />
das clear an sich ist wieder so aufgebaut:<br />
<code>while (! empty()) pop_back();</code><br />
etc<br />
das hat nicht nur den vorteil, dass man quellcode nicht 20mal schreiben muss, sondern auch, dass man ihn besser testen kann - und vor allem, schneller seine aufgabe ablesen kann...</p>
<pre><code class="language-cpp">for (size_t i = 0; i &lt; len; i++){

        if ( !member(e[i]) ){

            size_t pos = hash( e[i] );

            Bucket&lt;E&gt;* neuBuck = new Bucket&lt;E&gt;();
            neuBuck-&gt;key = e[i];
            neuBuck-&gt;next = array[pos];
            array[pos] = neuBuck;
            n++;
</code></pre>
<p>Konstruktoren sind dir offensichtlich nicht all zu geläufig?!</p>
<p>wenn du das ein wenig übersichtlicher gestaltest und dann noch ein wenig mehr (vll nciht gleich alles ^^) postest, wird dir sicher jmd helfen!</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727905</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 16 Jun 2009 20:48:21 GMT</pubDate></item><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Tue, 16 Jun 2009 21:03:28 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Bucket() : next(NULL){}
    ~Bucket () {
 		  Bucket *freeme;

	    while (next) {
		     freeme = next; 
		     next = next-&gt;next;
 		     delete freeme;
  	  }
  	}
 };
</code></pre>
<p>Geht das nicht voll in die Hose?<br />
Der Destruktor für das erste Bucket-Objekt (b1) wird aufgerufen. Dieser setzt freeme auf den eigenen Member &quot;b1-&gt;next&quot;, danach weist er dem eigenen Member &quot;b1-&gt;next&quot; den Wert von &quot;b1-&gt;next-&gt;next&quot; zu, danach wird freeme == b1-&gt;Next per delete über den Jordan geschickt.</p>
<p>Dummerweise geht &quot;delete freeme&quot; jetzt auch auf die eigenen childElemente los. Und welcher ist gleich der erste? korrekt. Genau der der jetzt in b1-&gt;next gespeichert ist. Dieser wird als erstes gelöscht.</p>
<p>Da bei &quot;delete b1&quot; der Zeiger &quot;b1-&gt;next&quot; nicht NULL ist, aber schon durch &quot;delete freeme&quot; gelöscht ist, gibt es nen Crash.<br />
Da solltest du dich mal bissl mit Rekursion beschäftigen, und ob du das auch wirklich willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727911</guid><dc:creator><![CDATA[Lecker]]></dc:creator><pubDate>Tue, 16 Jun 2009 21:03:28 GMT</pubDate></item><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Tue, 16 Jun 2009 21:15:24 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>Konstruktoren sind dir offensichtlich nicht all zu geläufig?!</p>
<p>wenn du das ein wenig übersichtlicher gestaltest und dann noch ein wenig mehr (vll nciht gleich alles ^^) postest, wird dir sicher jmd helfen!</p>
<p>bb</p>
</blockquote>
<p>also konstruktoren sind mir wohl geläufig. sonst würde das programm garnicht funktionieren. wollte nicht alles posten.</p>
<p>das problem ist, höchstwahrscheinlich im destructor. wie gesagt, es bleibt belegter speicher übrig.</p>
<p>wie ist es denn mit den destructoren? diese werden doch nach programmende automatisch aufgerufen oder nicht?</p>
<p>edit:<br />
würdest du dich etwas auskennen, wüsstest du, dass das noch lang nicht &quot;alles&quot; ist. sind schon so an die 350 zeilen. aber was solls, du wolltest mir eh nicht helfen, weil das thema hast du nicht angeschnitten, sondern mir was ganz anderes erzählt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727912</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727912</guid><dc:creator><![CDATA[notnerdyet]]></dc:creator><pubDate>Tue, 16 Jun 2009 21:15:24 GMT</pubDate></item><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Tue, 16 Jun 2009 21:09:55 GMT]]></title><description><![CDATA[<p>Lecker schrieb:</p>
<blockquote>
<pre><code class="language-cpp">Bucket() : next(NULL){}
    ~Bucket () {
 		  Bucket *freeme;

	    while (next) {
		     freeme = next; 
		     next = next-&gt;next;
 		     delete freeme;
  	  }
  	}
 };
</code></pre>
<p>Geht das nicht voll in die Hose?<br />
Der Destruktor für das erste Bucket-Objekt (b1) wird aufgerufen. Dieser setzt freeme auf den eigenen Member &quot;b1-&gt;next&quot;, danach weist er dem eigenen Member &quot;b1-&gt;next&quot; den Wert von &quot;b1-&gt;next-&gt;next&quot; zu, danach wird freeme == b1-&gt;Next per delete über den Jordan geschickt.</p>
<p>Dummerweise geht &quot;delete freeme&quot; jetzt auch auf die eigenen childElemente los. Und welcher ist gleich der erste? korrekt. Genau der der jetzt in b1-&gt;next gespeichert ist. Dieser wird als erstes gelöscht.</p>
<p>Da bei &quot;delete b1&quot; der Zeiger &quot;b1-&gt;next&quot; nicht NULL ist, aber schon durch &quot;delete freeme&quot; gelöscht ist, gibt es nen Crash.<br />
Da solltest du dich mal bissl mit Rekursion beschäftigen, und ob du das auch wirklich willst.</p>
</blockquote>
<p>den teil kann man vergessen .. vorallem wenn der part auch im ~ContSepChain auch nochmal auftaucht, gibts segmentation fault.</p>
<p>ich würde den ~Bucket einfach leer lassen und ~ContSepChain alle arbeit machen lassen. müsste eigentlich funktionieren oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727916</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727916</guid><dc:creator><![CDATA[notnerdyet]]></dc:creator><pubDate>Tue, 16 Jun 2009 21:09:55 GMT</pubDate></item><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Tue, 16 Jun 2009 21:14:38 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Bucket::~Bucket
{
    delete next;
    next = NULL;
}
</code></pre>
<p>Reicht vollkommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727918</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727918</guid><dc:creator><![CDATA[Lecker]]></dc:creator><pubDate>Tue, 16 Jun 2009 21:14:38 GMT</pubDate></item><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Tue, 16 Jun 2009 21:21:52 GMT]]></title><description><![CDATA[<p>Lecker schrieb:</p>
<blockquote>
<pre><code class="language-cpp">Bucket::~Bucket
{
    delete next;
    next = NULL;
}
</code></pre>
<p>Reicht vollkommen.</p>
</blockquote>
<p>dem stimm ich zu, der code vom ~Bucket davor war noch vom experimentieren. verzeihung.</p>
<p>ontopic:<br />
ich habe ein testprogramm um meine hashtabelle zu testen. wenn ich das testprogramm einfach mit &quot;quit&quot; beende, merke ich (wenn ich debugge mit std::cout in z.b. ~bucket) dass der destructor nicht aufgerufen wird.. kann das sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727920</guid><dc:creator><![CDATA[notnerdyet]]></dc:creator><pubDate>Tue, 16 Jun 2009 21:21:52 GMT</pubDate></item><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Tue, 16 Jun 2009 21:29:48 GMT]]></title><description><![CDATA[<p>notnerdyet schrieb:</p>
<blockquote>
<p>würdest du dich etwas auskennen, wüsstest du, dass das noch lang nicht &quot;alles&quot; ist.</p>
</blockquote>
<p>Wo hat er das denn behauptet?</p>
<blockquote>
<p>aber was solls, du wolltest mir eh nicht helfen, weil das thema hast du nicht angeschnitten, sondern mir was ganz anderes erzählt.</p>
</blockquote>
<p>Er hilft dir doch. Also Leute gibts <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="😕"
    /></p>
<blockquote>
<p>wenn ich das testprogramm einfach mit &quot;quit&quot; beende</p>
</blockquote>
<p>Wasn das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727921</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Tue, 16 Jun 2009 21:29:48 GMT</pubDate></item><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Tue, 16 Jun 2009 21:36:23 GMT]]></title><description><![CDATA[<p>sorry. er hat geschrieben, ich soll ned alles posten, hab ich ja ned. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1727923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727923</guid><dc:creator><![CDATA[notnerdyet]]></dc:creator><pubDate>Tue, 16 Jun 2009 21:36:23 GMT</pubDate></item><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Tue, 16 Jun 2009 21:38:42 GMT]]></title><description><![CDATA[<p>Michael E. schrieb:</p>
<blockquote>
<blockquote>
<p>wenn ich das testprogramm einfach mit &quot;quit&quot; beende</p>
</blockquote>
<p>Wasn das?</p>
</blockquote>
<p>das ist ein programm mit dem ich die methoden usw. ausprobieren kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727924</guid><dc:creator><![CDATA[notnerdyet]]></dc:creator><pubDate>Tue, 16 Jun 2009 21:38:42 GMT</pubDate></item><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Tue, 16 Jun 2009 21:50:38 GMT]]></title><description><![CDATA[<p>notnerdyet schrieb:</p>
<blockquote>
<p>sondern mir was ganz anderes erzählt.</p>
</blockquote>
<p>Genau - ich hab dir gesagt, was du machen musst, um selbst den Fehler zu finden...<br />
Du sollst deine Funktionen kleiner und übersichtlicher gestalten - wenn du meinen weg genommen hättest, hättest du schon bei pop_front() gesehen, was passiert - und wärst überrascht gewesen - aber hättest es iwann verstanden und gemerkt, was du falsch machst...</p>
<p>bb</p>
<p>edit:<br />
zu konstruktoren:</p>
<pre><code class="language-cpp">Bucket&lt;E&gt;* neuBuck = new Bucket&lt;E&gt;(); 
            neuBuck-&gt;key = e[i]; 
            neuBuck-&gt;next = array[pos]; 
            array[pos] = neuBuck;
</code></pre>
<p>dort sieht man doch, dass da was nicht hinhaut...</p>
<p><code>array[pos] = new Bucket&lt;E&gt;(e[i], array[pos]);</code><br />
müsstest Bucket eben nur nen passenden Konstruktor verpassen - und schon könnte man mit einem Block erfassen, was dort vor sich geht...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727926</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 16 Jun 2009 21:50:38 GMT</pubDate></item><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Tue, 16 Jun 2009 22:07:25 GMT]]></title><description><![CDATA[<p>sorry fürs missverständnis.</p>
<p>auf deiner seite ist auch ein missverständnis passiert. ich habe meinen konstruktor noch garnicht gepostet. das was du da zitierst ist meine add-methode.</p>
<p>mein konstruktor sieht so aus:</p>
<pre><code class="language-cpp">template &lt;typename E&gt;
 ContSepChain&lt;E&gt;::ContSepChain( ) : tablesize( 7 ), n( 0 ) { 

	array = new Bucket&lt;E&gt;* [tablesize];	
	if (array != NULL){
		for (size_t i = 0; i &lt; tablesize; i++)
				array[i] = NULL; 
	}			
 }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1727931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727931</guid><dc:creator><![CDATA[notnerdyet]]></dc:creator><pubDate>Tue, 16 Jun 2009 22:07:25 GMT</pubDate></item><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Tue, 16 Jun 2009 22:22:13 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/16305">@unskilled</a>: danke für deine mühe mein programm zu vereinfachen.</p>
<p>das problem liegt aber wie gesagt im speicherleak. das programm funktioniert ja. vereinfachungen es besser lesen zu können, hilft mir dabei auch nicht weiter.</p>
<p>irgndwelche ideen wie ich den destruktor gestalten kann bzw. sonstwas tun soll um meine speicherleaks zu entfernen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727936</guid><dc:creator><![CDATA[notnerdyet]]></dc:creator><pubDate>Tue, 16 Jun 2009 22:22:13 GMT</pubDate></item><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Wed, 17 Jun 2009 01:09:54 GMT]]></title><description><![CDATA[<p>notnerdyet schrieb:</p>
<blockquote>
<p>das problem liegt aber wie gesagt im speicherleak. das programm funktioniert ja. vereinfachungen es besser lesen zu können, hilft mir dabei auch nicht weiter.</p>
</blockquote>
<p>Das ist wie: &quot;Ich hab nen Problem, weiß nicht, wieso genau, aber besser verstehen brauch ich hier gar nichts - ich warte einfach, bis mir jmd mein Problem löst - und das nächste Mal mach ichs wieder genau so&quot; -.-</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727966</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727966</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 17 Jun 2009 01:09:54 GMT</pubDate></item><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Wed, 17 Jun 2009 01:36:54 GMT]]></title><description><![CDATA[<p>mag sein, dass ich den eindruck vermittle, da ich extrem unter zeitdruck stehe, das problem lösen zu müssen. verstehen jedoch will ichs schon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727967</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727967</guid><dc:creator><![CDATA[notnerdyet]]></dc:creator><pubDate>Wed, 17 Jun 2009 01:36:54 GMT</pubDate></item><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Wed, 17 Jun 2009 11:33:03 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>zu konstruktoren:</p>
<pre><code class="language-cpp">Bucket&lt;E&gt;* neuBuck = new Bucket&lt;E&gt;(); 
            neuBuck-&gt;key = e[i]; 
            neuBuck-&gt;next = array[pos]; 
            array[pos] = neuBuck;
</code></pre>
<p>dort sieht man doch, dass da was nicht hinhaut...</p>
<p><code>array[pos] = new Bucket&lt;E&gt;(e[i], array[pos]);</code><br />
müsstest Bucket eben nur nen passenden Konstruktor verpassen - und schon könnte man mit einem Block erfassen, was dort vor sich geht...</p>
<p>bb</p>
</blockquote>
<p>hab nen konstruktor für bucket erstellt, läuft jetzt auch mit der zeile: array[pos] = new Bucket&lt;E&gt;(e[i], array[pos]);</p>
<p>jedoch kann ich den speicher den ich mit &quot;new&quot; erstellt habe immer noch nicht löschen. für hilfreiche hinweise bin ich sehr dankbar!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1728114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1728114</guid><dc:creator><![CDATA[notnerdyet]]></dc:creator><pubDate>Wed, 17 Jun 2009 11:33:03 GMT</pubDate></item><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Thu, 18 Jun 2009 13:16:31 GMT]]></title><description><![CDATA[<p>habs nun selbst gelöst.</p>
<p>tipps von &quot;unskilled&quot; waren wie der name ja scho sagt .... <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1728834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1728834</guid><dc:creator><![CDATA[notnerdyet]]></dc:creator><pubDate>Thu, 18 Jun 2009 13:16:31 GMT</pubDate></item><item><title><![CDATA[Reply to speicherleak in hashtabelle mit separate chaining on Thu, 18 Jun 2009 13:22:36 GMT]]></title><description><![CDATA[<p>notnerdyet schrieb:</p>
<blockquote>
<p>tipps von &quot;unskilled&quot; waren wie der name ja scho sagt .... <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>
</blockquote>
<p>Jedenfalls weiß ich, wie ich meine Klassen implementiere, um so was selbst (vorzeitig) zu finden - und die Lösung war ja schon auf der ersten Seite, also brauchte ich auch nichts mehr zum Problem an sich sagen - nur meine Aussage erklären - von wegen Konstruktoren sind dir kein Begriff...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1728837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1728837</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 18 Jun 2009 13:22:36 GMT</pubDate></item></channel></rss>