<?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[Pointer freigeben mit delete]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe hier ein kleines Problem mit einem char Array. Folgender Code erzeugt eine Fehlermeldung im laufenden Programm, sobald das delete[] am Ende ausgeführt wird und zwar sowas:</p>
<blockquote>
<p>*** gdlibc detected *** ./programmname: free(): invalid pointer: 0xb7f805bc<br />
========== Backtrace: =============<br />
weitere Adressen</p>
</blockquote>
<p>Mir ist klar, dass es ein Speicherfreigabe Problem auf dem Heap ist. Der Pointer ist wohl nach dieser Zeile:</p>
<pre><code>request = string(ptrRequest);
</code></pre>
<p>nicht mehr ansprechbar auf dem Heap! Oder?</p>
<p>Ich habe auch</p>
<pre><code>request = ptrRequest;
</code></pre>
<p>versucht, ist das selbe Problem.</p>
<p>Hier der wichtige Teil aus dem Code:</p>
<pre><code>char* ptrRequest = new char[SIZE];

//jetzt wird ptrRequest korrekt gefüllt

request = string(ptrRequest);

delete[] ptrRequest; // FEHLERMELDUNG!
</code></pre>
<p>Ist glaube ich ein bekanntes Problem, aber ich habe keine Lösung dazu gefunden. Kann mir jemand helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/165090/pointer-freigeben-mit-delete</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 04:54:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/165090.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 15 Nov 2006 12:24:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pointer freigeben mit delete on Wed, 15 Nov 2006 12:24:41 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe hier ein kleines Problem mit einem char Array. Folgender Code erzeugt eine Fehlermeldung im laufenden Programm, sobald das delete[] am Ende ausgeführt wird und zwar sowas:</p>
<blockquote>
<p>*** gdlibc detected *** ./programmname: free(): invalid pointer: 0xb7f805bc<br />
========== Backtrace: =============<br />
weitere Adressen</p>
</blockquote>
<p>Mir ist klar, dass es ein Speicherfreigabe Problem auf dem Heap ist. Der Pointer ist wohl nach dieser Zeile:</p>
<pre><code>request = string(ptrRequest);
</code></pre>
<p>nicht mehr ansprechbar auf dem Heap! Oder?</p>
<p>Ich habe auch</p>
<pre><code>request = ptrRequest;
</code></pre>
<p>versucht, ist das selbe Problem.</p>
<p>Hier der wichtige Teil aus dem Code:</p>
<pre><code>char* ptrRequest = new char[SIZE];

//jetzt wird ptrRequest korrekt gefüllt

request = string(ptrRequest);

delete[] ptrRequest; // FEHLERMELDUNG!
</code></pre>
<p>Ist glaube ich ein bekanntes Problem, aber ich habe keine Lösung dazu gefunden. Kann mir jemand helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1175134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1175134</guid><dc:creator><![CDATA[deetee]]></dc:creator><pubDate>Wed, 15 Nov 2006 12:24:41 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer freigeben mit delete on Wed, 15 Nov 2006 13:39:47 GMT]]></title><description><![CDATA[<p>Was ist &quot;string&quot; für ein Objekt ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1175208</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1175208</guid><dc:creator><![CDATA[Knuddlbaer]]></dc:creator><pubDate>Wed, 15 Nov 2006 13:39:47 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer freigeben mit delete on Wed, 15 Nov 2006 14:31:36 GMT]]></title><description><![CDATA[<p>string(ptrRequest) soll ein Objekt der Klasse string erstellen.</p>
<p>So rufe ich doch den Konstruktor der Klasse string auf, oder nicht?</p>
<p>Ich habe es aber auch schon einfach so versucht:</p>
<p>request = ptrRequest;</p>
<p>Wie gesagt, beides hat den selben Effekt. Die delete[] Anweisung am Ende klappt nicht. Hat was mit dem Heap zutun, denke ich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1175253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1175253</guid><dc:creator><![CDATA[deetee]]></dc:creator><pubDate>Wed, 15 Nov 2006 14:31:36 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer freigeben mit delete on Wed, 15 Nov 2006 14:33:59 GMT]]></title><description><![CDATA[<p>Was ist string</p>
<p>System::String<br />
std::String</p>
<p>oder anderst gefragt:<br />
Was macht der Konstruktor der unbekannten Klasse string ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1175257</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1175257</guid><dc:creator><![CDATA[Knuddlbaer]]></dc:creator><pubDate>Wed, 15 Nov 2006 14:33:59 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer freigeben mit delete on Wed, 15 Nov 2006 14:41:40 GMT]]></title><description><![CDATA[<p>ich nehme die std:string Klasse. Habe sie inkludiert per #include &lt;string&gt; und die using namespace std Angabe. Die Klasse string ist schon bekannt, ich verwende ja ein paar Methoden daraus.</p>
<p>Achso, request ist natürlich auch ein Objekt der Klasse string. Deswegen ja die Zuweisung, die auch klappt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1175263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1175263</guid><dc:creator><![CDATA[deetee]]></dc:creator><pubDate>Wed, 15 Nov 2006 14:41:40 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer freigeben mit delete on Wed, 15 Nov 2006 14:42:02 GMT]]></title><description><![CDATA[<p>Ja schön für Dich das die Klasse bekannt ist, aber da Du explizit in C++/CLI postest ist nicht davon auszugehen das es std::string ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1175266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1175266</guid><dc:creator><![CDATA[Knuddlbaer]]></dc:creator><pubDate>Wed, 15 Nov 2006 14:42:02 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer freigeben mit delete on Wed, 15 Nov 2006 14:44:50 GMT]]></title><description><![CDATA[<p>Funktioniert ohne Probleme:</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &lt;string&gt;

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	char * ptrRequest = new char[255];
	strcpy(ptrRequest,&quot;Hallo Welt&quot;);

	string t = string(ptrRequest);

	delete[] ptrRequest;
}
</code></pre>
<p>Prüfe also was Du sonst noch mit ptrRequest anstellst (beim Füllen unsinn gemacht o.Ä. ?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1175271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1175271</guid><dc:creator><![CDATA[Knuddlbaer]]></dc:creator><pubDate>Wed, 15 Nov 2006 14:44:50 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer freigeben mit delete on Wed, 15 Nov 2006 15:00:19 GMT]]></title><description><![CDATA[<p>ok danke, hab den Fehler gefunden. Diese Zeile habe ich</p>
<pre><code class="language-cpp">ptrRequest = (char *) request.c_str();
</code></pre>
<p>entfernen müssen, weil sie im kontext unsinnig und falsch war.</p>
<p>Vielen dank für deine Geduld.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1175284</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1175284</guid><dc:creator><![CDATA[deetee]]></dc:creator><pubDate>Wed, 15 Nov 2006 15:00:19 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer freigeben mit delete on Wed, 15 Nov 2006 15:05:26 GMT]]></title><description><![CDATA[<p>Öhm.... das is dreist ;o)</p>
<p>c_str() gibt einen const char* zurück und da darf nix rein geschrieben werden, auch nich gelöscht. Das gehört std::string und ist nur zum lesen da. Also: Finger weg <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/1175290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1175290</guid><dc:creator><![CDATA[Knuddlbaer]]></dc:creator><pubDate>Wed, 15 Nov 2006 15:05:26 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer freigeben mit delete on Wed, 15 Nov 2006 16:04:10 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=18363" rel="nofollow">Jochen Kalmbach</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=58" rel="nofollow">C++/CLI mit .NET</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=15" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" 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/1175340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1175340</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Wed, 15 Nov 2006 16:04:10 GMT</pubDate></item></channel></rss>