<?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[delete von strrchr-rückgabewert]]></title><description><![CDATA[<p>guten abend allerseits.</p>
<p>ich versuche alle dateien eines ordners auszulesen, und zu überprüfen, ob die dateiendung .txt ist. ich habe folgenden code:</p>
<pre><code class="language-cpp">DIR *mdir = NULL;
	mdir = opendir(&quot;./Data&quot;);
	if(mdir == NULL)
		exitProgram(&quot;ERROR: ./Data not found!\n&quot;);

	dirent *mentry = NULL;

	char *str = new char[32];
	char *path = new char[45];

	while(mentry = readdir(mdir)) {
		if(strcmp(mentry-&gt;d_name, &quot;.&quot;) != 0 &amp;&amp; strcmp(mentry-&gt;d_name, &quot;..&quot;) != 0) {
			str = strrchr(mentry-&gt;d_name, '.');
			if(strcmp(str, &quot;.txt&quot;) == 0) {
				// liste u.a. dateien auf
			}
		}
	}
	closedir(mdir);
	delete(mentry);
	delete[](str);
	delete[](path);
</code></pre>
<p>die dateien werden korrekt aufgelistet, das problem tritt erst beim befehl delete[](str) auf:</p>
<p>*** glibc detected *** /.../compiled: free(): invalid pointer: 0x000000000061d246 ***</p>
<p>kann mir jemand sagen wie ich den speicher, den die variable str belegt wieder freigeben kann? der fehler tritt auf, wenn ich str nach dem aufruf von strrchr freigeben will, vorher kann man die variable ohne probleme deleten</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/226214/delete-von-strrchr-rückgabewert</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 01:18:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/226214.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 30 Oct 2008 17:30:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to delete von strrchr-rückgabewert on Thu, 30 Oct 2008 17:30:53 GMT]]></title><description><![CDATA[<p>guten abend allerseits.</p>
<p>ich versuche alle dateien eines ordners auszulesen, und zu überprüfen, ob die dateiendung .txt ist. ich habe folgenden code:</p>
<pre><code class="language-cpp">DIR *mdir = NULL;
	mdir = opendir(&quot;./Data&quot;);
	if(mdir == NULL)
		exitProgram(&quot;ERROR: ./Data not found!\n&quot;);

	dirent *mentry = NULL;

	char *str = new char[32];
	char *path = new char[45];

	while(mentry = readdir(mdir)) {
		if(strcmp(mentry-&gt;d_name, &quot;.&quot;) != 0 &amp;&amp; strcmp(mentry-&gt;d_name, &quot;..&quot;) != 0) {
			str = strrchr(mentry-&gt;d_name, '.');
			if(strcmp(str, &quot;.txt&quot;) == 0) {
				// liste u.a. dateien auf
			}
		}
	}
	closedir(mdir);
	delete(mentry);
	delete[](str);
	delete[](path);
</code></pre>
<p>die dateien werden korrekt aufgelistet, das problem tritt erst beim befehl delete[](str) auf:</p>
<p>*** glibc detected *** /.../compiled: free(): invalid pointer: 0x000000000061d246 ***</p>
<p>kann mir jemand sagen wie ich den speicher, den die variable str belegt wieder freigeben kann? der fehler tritt auf, wenn ich str nach dem aufruf von strrchr freigeben will, vorher kann man die variable ohne probleme deleten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1607358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1607358</guid><dc:creator><![CDATA[123]]></dc:creator><pubDate>Thu, 30 Oct 2008 17:30:53 GMT</pubDate></item><item><title><![CDATA[Reply to delete von strrchr-rückgabewert on Thu, 30 Oct 2008 18:12:41 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">char *str = new char[32]; // str zeigt auf den angelegten Speicher

str = strrchr(mentry-&gt;d_name, '.'); // str zeigt nun auf ganz anderen Speicher

// Toll, jetzt hast du den Verweis auf den von dir angelegten Speicher verloren
// Und wie willst du jetzt jemals wieder auf ihn zugreifen?

delete [] str; // Speicher freigeben, den du aber garnicht angelegt hast
</code></pre>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1607379</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1607379</guid><dc:creator><![CDATA[Punch0r]]></dc:creator><pubDate>Thu, 30 Oct 2008 18:12:41 GMT</pubDate></item><item><title><![CDATA[Reply to delete von strrchr-rückgabewert on Thu, 30 Oct 2008 18:51:42 GMT]]></title><description><![CDATA[<p>achsooo <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
dankeschön, error ist weg und valgrind zeigt auch kein memory leak <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="🙂"
    /> (ausser solche, die bei glut- oder alut-funktionen entstehen... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> falls jemand einen tipp bezüglich dieser leaks hat: nur zu <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="😉"
    /> obwohl das nicht hier hingehört)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1607406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1607406</guid><dc:creator><![CDATA[123]]></dc:creator><pubDate>Thu, 30 Oct 2008 18:51:42 GMT</pubDate></item><item><title><![CDATA[Reply to delete von strrchr-rückgabewert on Thu, 30 Oct 2008 23:12:58 GMT]]></title><description><![CDATA[<p>wenn du uns die glut und alut definitionen zeigst, kann dir vielleicht geholfen werden - oder sind das Funktionen aus irgendwelchen Bibliotheken?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1607598</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1607598</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 30 Oct 2008 23:12:58 GMT</pubDate></item><item><title><![CDATA[Reply to delete von strrchr-rückgabewert on Fri, 31 Oct 2008 09:51:04 GMT]]></title><description><![CDATA[<p>sind aus blbliotheken.<br />
verwende ubuntu und hab die libaries aus der paketquelle (libalut, libglut3)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1607914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1607914</guid><dc:creator><![CDATA[123]]></dc:creator><pubDate>Fri, 31 Oct 2008 09:51:04 GMT</pubDate></item></channel></rss>