<?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[Bleibt Mallocspeicher über dll Grenzen hinweg erhalten?]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe mal ne Frage zu malloc. Der Speicher wird doch erst dann freigegeben wenn ich entweder das Programm beende oder free benutze. Wie verhält es sich mit dll's? Ich habe da gerade einen kuriosen Fehler beim Debuggen entdeckt:</p>
<p>Einer dll-Funktion übergebe ich die Adresse eines Pointers. Diese Funktion fordert nun Speicher an und biegt dann den Zeiger auf diesen um. Dann -&gt;kopiere&lt;- ich testweise Daten herein. Wieder zurueck in meinem Testprogramm, sieht alles ganz anders aus. Es scheinen immer noch meine Testdaten zu sein, jedoch stellenweise mit irgendwas überschrieben.</p>
<p>Wird der angeforderte Speicher vielleicht wieder freigegeben, weil die dll entladen wurde? (Obwohl ich keinen derartigen Befehl nach dem Funktionsaufruf getätigt habe.)</p>
<p>Viele Grüße</p>
<p>Peter</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/65461/bleibt-mallocspeicher-über-dll-grenzen-hinweg-erhalten</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 16:26:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/65461.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 19 Feb 2004 10:15:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bleibt Mallocspeicher über dll Grenzen hinweg erhalten? on Thu, 19 Feb 2004 10:15:31 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe mal ne Frage zu malloc. Der Speicher wird doch erst dann freigegeben wenn ich entweder das Programm beende oder free benutze. Wie verhält es sich mit dll's? Ich habe da gerade einen kuriosen Fehler beim Debuggen entdeckt:</p>
<p>Einer dll-Funktion übergebe ich die Adresse eines Pointers. Diese Funktion fordert nun Speicher an und biegt dann den Zeiger auf diesen um. Dann -&gt;kopiere&lt;- ich testweise Daten herein. Wieder zurueck in meinem Testprogramm, sieht alles ganz anders aus. Es scheinen immer noch meine Testdaten zu sein, jedoch stellenweise mit irgendwas überschrieben.</p>
<p>Wird der angeforderte Speicher vielleicht wieder freigegeben, weil die dll entladen wurde? (Obwohl ich keinen derartigen Befehl nach dem Funktionsaufruf getätigt habe.)</p>
<p>Viele Grüße</p>
<p>Peter</p>
]]></description><link>https://www.c-plusplus.net/forum/post/462901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/462901</guid><dc:creator><![CDATA[peterfarge]]></dc:creator><pubDate>Thu, 19 Feb 2004 10:15:31 GMT</pubDate></item><item><title><![CDATA[Reply to Bleibt Mallocspeicher über dll Grenzen hinweg erhalten? on Thu, 19 Feb 2004 10:53:27 GMT]]></title><description><![CDATA[<p>Ist der Bereich, den du mit Malloc anlegst auch wirklich groß genug? Der Speicher bleibt erhalten, wenn du beim entladen nicht gerade ein free machst. Poste doch mal ein bisschen code, dann läßt sich leichter drüber reden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/462938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/462938</guid><dc:creator><![CDATA[TheBigW]]></dc:creator><pubDate>Thu, 19 Feb 2004 10:53:27 GMT</pubDate></item><item><title><![CDATA[Reply to Bleibt Mallocspeicher über dll Grenzen hinweg erhalten? on Thu, 19 Feb 2004 12:19:33 GMT]]></title><description><![CDATA[<p>Ich habe den Fehler jetzt etwas weiter eingegrenzt. Code posten geht schlecht. Ist eigentlich schon ein fertiges Projekt.</p>
<p>Die Datenstruktur die zwischen den dll' und der exe ausgetauscht werden soll habe ich verändert.<br />
Vorher:</p>
<pre><code class="language-cpp">struct myData {
	char	*abc;
	char	*def;
};
</code></pre>
<p>Nacher:</p>
<pre><code class="language-cpp">struct myData {
	int	format;
	char	*abc;
	char	*def;
};
</code></pre>
<p>Der Int steht dabei konstant auf 0. Wenn ich den Pointer *abc auf einen Text setze, erscheint dieser Text im Hauptprogramm an der Stelle *def. Und *abc zeigt auf die 0. Es ist so als wenn der Computer nichts von der neuen Struktur wüsste.</p>
<p>Die Struktur ist in einem extra Header abgelegt. Diesen Header binde ich dann überall ein. Die Debug Verzeichnisse habe ich auch allesamt schon geleert. Es könnte natürlich sein das die Daten irgendwie überschrieben wurden. Vielleicht ist es aber auch ein Fehler von MS. Weiß jemand Näheres?</p>
<p>Viele Grüße</p>
<p>Peter</p>
]]></description><link>https://www.c-plusplus.net/forum/post/462969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/462969</guid><dc:creator><![CDATA[peterfarge]]></dc:creator><pubDate>Thu, 19 Feb 2004 12:19:33 GMT</pubDate></item><item><title><![CDATA[Reply to Bleibt Mallocspeicher über dll Grenzen hinweg erhalten? on Thu, 19 Feb 2004 12:08:01 GMT]]></title><description><![CDATA[<p>Beim Debuggen über die Projektgrenzen hinweg sieht man es deutlich: Bin ich im dll Projekt hat die Struktur das Unterattribut int. Bin ich in der EXE fehlt der Int in der Struct.</p>
<p>Keine Ahnung...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/463039</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/463039</guid><dc:creator><![CDATA[peterfarge]]></dc:creator><pubDate>Thu, 19 Feb 2004 12:08:01 GMT</pubDate></item><item><title><![CDATA[Reply to Bleibt Mallocspeicher über dll Grenzen hinweg erhalten? on Thu, 19 Feb 2004 12:29:24 GMT]]></title><description><![CDATA[<p>Bist du sicher dass die Dll und die Exe genau dieselbe .h-Datei benutzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/463070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/463070</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Thu, 19 Feb 2004 12:29:24 GMT</pubDate></item><item><title><![CDATA[Reply to Bleibt Mallocspeicher über dll Grenzen hinweg erhalten? on Thu, 19 Feb 2004 12:54:46 GMT]]></title><description><![CDATA[<p>Hallo cd9000,</p>
<p>den Fehler habe ich aber eben lokalisiert. Es lag daran, das eine Projekt-DLL die ganze Zeit verwendet wurde. Die einzelnen Teile des Projektes lagen also richtig kompiliert im Debug Verzeichnis, das Kopieren ins system32 hat aber nicht funktioniert. Zu dumm so ein Fehler...<br />
Tut mir Leid das ich Eure Zeit verschwendet habe.</p>
<p>Viele Grüße</p>
<p>Peter</p>
]]></description><link>https://www.c-plusplus.net/forum/post/463103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/463103</guid><dc:creator><![CDATA[peterfarge]]></dc:creator><pubDate>Thu, 19 Feb 2004 12:54:46 GMT</pubDate></item><item><title><![CDATA[Reply to Bleibt Mallocspeicher über dll Grenzen hinweg erhalten? on Thu, 19 Feb 2004 15:53:09 GMT]]></title><description><![CDATA[<p>Aber immer zuerst den Fehler bei anderen suchen. <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>peterfarge schrieb:</p>
<blockquote>
<p>Vielleicht ist es aber auch ein Fehler von MS. Weiß jemand Näheres?</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/463333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/463333</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Thu, 19 Feb 2004 15:53:09 GMT</pubDate></item></channel></rss>