<?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 gibt Speicher nicht frei]]></title><description><![CDATA[<p>Ich schlage mich gerade mit dem Phänomen herum, dass delete die mit new instanziierten Klassen nicht freigibt. Diese Tatsache entnehme ich einem Blick auf &quot;top&quot; (Linux). Code:</p>
<pre><code class="language-cpp">#include &quot;IrgendeineKlasse.h&quot;

int main(int argc, char **argv) {
    IrgendeineKlasse *instanzListe[100000], *instanz;

    // Instanzen bauen
    for(int i = 0; i &lt; 100000; i++) {
        instanz = new IrgendeineKlasse(i);
        instanzListe[i] = instanz;
    }

    // Instanzen freigeben
    for(int i = 0; i &lt; 100000; i++) {
        instanz = instanzListe[i];
        delete instanz;
    }

    // um genügend Zeit für &quot;top&quot; zu haben:
    getc(stdin);
}
</code></pre>
<p>IrgendeineKlasse ist eine Klasse mit öffentlichen Destruktor und Konstruktor, deren Implementationen leer sind.</p>
<p>Eine Debugausgabe in der zweiten Schleife zeigt mir, dass die richtigen Objekte geliefert werden. Delete müsste also funktionieren. Delete lässt sich sogar mehrfach auf dasselbe Objekt anwenden, ohne dass eine Exception oder Segmentation fault fliegt. Hab ich falsch kompiliert?</p>
<pre><code>g++ -o test main.cpp
</code></pre>
<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/180533/delete-gibt-speicher-nicht-frei</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 20:33:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/180533.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 03 May 2007 19:16:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to delete gibt Speicher nicht frei on Thu, 03 May 2007 19:16:46 GMT]]></title><description><![CDATA[<p>Ich schlage mich gerade mit dem Phänomen herum, dass delete die mit new instanziierten Klassen nicht freigibt. Diese Tatsache entnehme ich einem Blick auf &quot;top&quot; (Linux). Code:</p>
<pre><code class="language-cpp">#include &quot;IrgendeineKlasse.h&quot;

int main(int argc, char **argv) {
    IrgendeineKlasse *instanzListe[100000], *instanz;

    // Instanzen bauen
    for(int i = 0; i &lt; 100000; i++) {
        instanz = new IrgendeineKlasse(i);
        instanzListe[i] = instanz;
    }

    // Instanzen freigeben
    for(int i = 0; i &lt; 100000; i++) {
        instanz = instanzListe[i];
        delete instanz;
    }

    // um genügend Zeit für &quot;top&quot; zu haben:
    getc(stdin);
}
</code></pre>
<p>IrgendeineKlasse ist eine Klasse mit öffentlichen Destruktor und Konstruktor, deren Implementationen leer sind.</p>
<p>Eine Debugausgabe in der zweiten Schleife zeigt mir, dass die richtigen Objekte geliefert werden. Delete müsste also funktionieren. Delete lässt sich sogar mehrfach auf dasselbe Objekt anwenden, ohne dass eine Exception oder Segmentation fault fliegt. Hab ich falsch kompiliert?</p>
<pre><code>g++ -o test main.cpp
</code></pre>
<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278342</guid><dc:creator><![CDATA[Saraneus]]></dc:creator><pubDate>Thu, 03 May 2007 19:16:46 GMT</pubDate></item><item><title><![CDATA[Reply to delete gibt Speicher nicht frei on Thu, 03 May 2007 19:21:12 GMT]]></title><description><![CDATA[<p>Hmm delete NULL ist nach std. definiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278348</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 03 May 2007 19:21:12 GMT</pubDate></item><item><title><![CDATA[Reply to delete gibt Speicher nicht frei on Thu, 03 May 2007 19:22:30 GMT]]></title><description><![CDATA[<p>(D)Evil schrieb:</p>
<blockquote>
<p>Hmm delete NULL ist nach std. definiert.</p>
</blockquote>
<p>&quot;delete objekt&quot; schreib doch aber nicht NULL ins objekt, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278349</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278349</guid><dc:creator><![CDATA[Saraneus]]></dc:creator><pubDate>Thu, 03 May 2007 19:22:30 GMT</pubDate></item><item><title><![CDATA[Reply to delete gibt Speicher nicht frei on Thu, 03 May 2007 19:24:34 GMT]]></title><description><![CDATA[<p>Also... es kann sein, dass ich mich furchtbarr irre, aber soweit ich weiß, löscht man arrays auf dem heap doch durch delete[]^^</p>
<p>Aber irgendwie sieht das ganze etwas komisch aus, kann schon sein, dass da alles stimmt^^</p>
<p>Und zu top, ich empfehle dir valgrind <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="😉"
    /><br />
Das ist für sowas gemacht^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278351</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Thu, 03 May 2007 19:24:34 GMT</pubDate></item><item><title><![CDATA[Reply to delete gibt Speicher nicht frei on Thu, 03 May 2007 19:25:46 GMT]]></title><description><![CDATA[<p>Führ das ganze doch mal mit strace aus. Meine Vermutung ist, dass du einige brk() sehen wirst. Der Speicher wird so nur intern freigegeben, weil per brk() allozierter Speicher nicht zurückgegeben werden kann. Wenn du stattdessen mmap() siehst, ist tatsächlich etwas falsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278354</guid><dc:creator><![CDATA[Mr. N]]></dc:creator><pubDate>Thu, 03 May 2007 19:25:46 GMT</pubDate></item><item><title><![CDATA[Reply to delete gibt Speicher nicht frei on Thu, 03 May 2007 19:27:33 GMT]]></title><description><![CDATA[<p>The-Kenny schrieb:</p>
<blockquote>
<p>Also... es kann sein, dass ich mich furchtbarr irre, aber soweit ich weiß, löscht man arrays auf dem heap doch durch delete[]^^</p>
</blockquote>
<p>Furchtbar, wie du dich irrst <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="😉"
    /> Denn nur mit new alloziierten Speicher gibst du mit delete frei. Das Array wurde aber nicht mit new erstellt.</p>
<p>The-Kenny schrieb:</p>
<blockquote>
<p>Und zu top, ich empfehle dir valgrind <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>Danke, werd ich mir anschauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278357</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278357</guid><dc:creator><![CDATA[Saraneus]]></dc:creator><pubDate>Thu, 03 May 2007 19:27:33 GMT</pubDate></item><item><title><![CDATA[Reply to delete gibt Speicher nicht frei on Thu, 03 May 2007 19:33:22 GMT]]></title><description><![CDATA[<p>Du könntest auch einfach in den Destruktor ein</p>
<pre><code class="language-cpp">std::cerr &lt;&lt; &quot;Destructor!\n&quot;;
</code></pre>
<p>einfügen.</p>
<p>Aber der Code sieht schon richtig aus so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278364</guid><dc:creator><![CDATA[Mr. N]]></dc:creator><pubDate>Thu, 03 May 2007 19:33:22 GMT</pubDate></item><item><title><![CDATA[Reply to delete gibt Speicher nicht frei on Thu, 03 May 2007 19:33:27 GMT]]></title><description><![CDATA[<p>Mr. N schrieb:</p>
<blockquote>
<p>Führ das ganze doch mal mit strace aus. Meine Vermutung ist, dass du einige brk() sehen wirst. Der Speicher wird so nur intern freigegeben, weil per brk() allozierter Speicher nicht zurückgegeben werden kann. Wenn du stattdessen mmap() siehst, ist tatsächlich etwas falsch.</p>
</blockquote>
<p>strace spuckt mmap2- und brk-Zeilen aus. Wenn du willst, schick ich dir den Output. Was hat das zu bedeuten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278365</guid><dc:creator><![CDATA[Saraneus]]></dc:creator><pubDate>Thu, 03 May 2007 19:33:27 GMT</pubDate></item><item><title><![CDATA[Reply to delete gibt Speicher nicht frei on Thu, 03 May 2007 19:34:41 GMT]]></title><description><![CDATA[<p>Saraneus schrieb:</p>
<blockquote>
<p>Mr. N schrieb:</p>
<blockquote>
<p>Führ das ganze doch mal mit strace aus. Meine Vermutung ist, dass du einige brk() sehen wirst. Der Speicher wird so nur intern freigegeben, weil per brk() allozierter Speicher nicht zurückgegeben werden kann. Wenn du stattdessen mmap() siehst, ist tatsächlich etwas falsch.</p>
</blockquote>
<p>strace spuckt mmap2- und brk-Zeilen aus. Wenn du willst, schick ich dir den Output. Was hat das zu bedeuten?</p>
</blockquote>
<p>Ja, zeig her <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278369</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278369</guid><dc:creator><![CDATA[Mr. N]]></dc:creator><pubDate>Thu, 03 May 2007 19:34:41 GMT</pubDate></item><item><title><![CDATA[Reply to delete gibt Speicher nicht frei on Thu, 03 May 2007 19:39:58 GMT]]></title><description><![CDATA[<p>Mr. N schrieb:</p>
<blockquote>
<p>Ja, zeig her <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
</blockquote>
<p>Wie du meinst <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>
<pre><code>project@linux-server:~/cpp/ChatServer/src$ strace build/chatserver
execve(&quot;build/chatserver&quot;, [&quot;build/chatserver&quot;], [/* 15 vars */]) = 0
brk(0)                                  = 0x804b000
access(&quot;/etc/ld.so.nohwcap&quot;, F_OK)      = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9c000
access(&quot;/etc/ld.so.preload&quot;, R_OK)      = -1 ENOENT (No such file or directory)
open(&quot;/etc/ld.so.cache&quot;, O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=39808, ...}) = 0
mmap2(NULL, 39808, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f92000
close(3)                                = 0
access(&quot;/etc/ld.so.nohwcap&quot;, F_OK)      = -1 ENOENT (No such file or directory)
open(&quot;/usr/lib/libstdc++.so.6&quot;, O_RDONLY) = 3
read(3, &quot;\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\31\4&quot;..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=929648, ...}) = 0
mmap2(NULL, 956068, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7ea8000
mmap2(0xb7f87000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xde) = 0xb7f87000
mmap2(0xb7f8c000, 22180, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f8c000
close(3)                                = 0
access(&quot;/etc/ld.so.nohwcap&quot;, F_OK)      = -1 ENOENT (No such file or directory)
open(&quot;/lib/tls/i686/cmov/libm.so.6&quot;, O_RDONLY) = 3
read(3, &quot;\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P4\0\000&quot;..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=153424, ...}) = 0
mmap2(NULL, 155776, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e81000
mmap2(0xb7ea6000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24) = 0xb7ea6000
close(3)                                = 0
access(&quot;/etc/ld.so.nohwcap&quot;, F_OK)      = -1 ENOENT (No such file or directory)
open(&quot;/lib/libgcc_s.so.1&quot;, O_RDONLY)    = 3
read(3, &quot;\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\34\0&quot;..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=42796, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7e80000
mmap2(NULL, 45892, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e74000
mmap2(0xb7e7f000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xa) = 0xb7e7f000
close(3)                                = 0
access(&quot;/etc/ld.so.nohwcap&quot;, F_OK)      = -1 ENOENT (No such file or directory)
open(&quot;/lib/tls/i686/cmov/libc.so.6&quot;, O_RDONLY) = 3
read(3, &quot;\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0`\1\000&quot;..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1307104, ...}) = 0
mmap2(NULL, 1312164, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7d33000
mmap2(0xb7e6e000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13b) = 0xb7e6e000
mmap2(0xb7e71000, 9636, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7e71000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7d32000
set_thread_area({entry_number:-1 -&gt; 6, base_addr:0xb7d326d0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0xb7e6e000, 4096, PROT_READ)   = 0
mprotect(0xb7f87000, 12288, PROT_READ)  = 0
munmap(0xb7f92000, 39808)               = 0
brk(0)                                  = 0x804b000
brk(0x806c000)                          = 0x806c000
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9b000
write(1, &quot;ChatServer v0.1\n&quot;, 16ChatServer v0.1
)       = 16
brk(0x808d000)                          = 0x808d000
brk(0x80ae000)                          = 0x80ae000
brk(0x80cf000)                          = 0x80cf000
brk(0x80f0000)                          = 0x80f0000
brk(0x8111000)                          = 0x8111000
brk(0x8132000)                          = 0x8132000
brk(0x8153000)                          = 0x8153000
usw.
brk(0x96fb000)                          = 0x96fb000
brk(0x971c000)                          = 0x971c000
brk(0x973d000)                          = 0x973d000
write(1, &quot;\n&quot;, 1
)                       = 1
fstat64(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9a000
write(1, &quot;finished&quot;, 8finished)                 = 8
read(0, a
&quot;a\n&quot;, 1024)                    = 2
exit_group(0)                           = ?
Process 5651 detached
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1278372</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278372</guid><dc:creator><![CDATA[Saraneus]]></dc:creator><pubDate>Thu, 03 May 2007 19:39:58 GMT</pubDate></item><item><title><![CDATA[Reply to delete gibt Speicher nicht frei on Thu, 03 May 2007 19:47:26 GMT]]></title><description><![CDATA[<p>Saraneus schrieb:</p>
<blockquote>
<p>project@linux-server:~/cpp/ChatServer/src$ strace build/chatserver<br />
execve(&quot;build/chatserver&quot;, [&quot;build/chatserver&quot;], [/* 15 vars */]) = 0<br />
brk(0) = 0x804b000<br />
access(&quot;/etc/ld.so.nohwcap&quot;, F_OK) = -1 ENOENT (No such file or directory)<br />
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9c000<br />
access(&quot;/etc/ld.so.preload&quot;, R_OK) = -1 ENOENT (No such file or directory)<br />
open(&quot;/etc/ld.so.cache&quot;, O_RDONLY) = 3<br />
fstat64(3, {st_mode=S_IFREG|0644, st_size=39808, ...}) = 0<br />
mmap2(NULL, 39808, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f92000<br />
close(3) = 0<br />
access(&quot;/etc/ld.so.nohwcap&quot;, F_OK) = -1 ENOENT (No such file or directory)<br />
open(&quot;/usr/lib/libstdc++.so.6&quot;, O_RDONLY) = 3<br />
read(3, &quot;\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\31\4&quot;..., 512) = 512<br />
fstat64(3, {st_mode=S_IFREG|0644, st_size=929648, ...}) = 0<br />
mmap2(NULL, 956068, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7ea8000<br />
mmap2(0xb7f87000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xde) = 0xb7f87000<br />
mmap2(0xb7f8c000, 22180, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f8c000<br />
close(3) = 0<br />
access(&quot;/etc/ld.so.nohwcap&quot;, F_OK) = -1 ENOENT (No such file or directory)<br />
open(&quot;/lib/tls/i686/cmov/libm.so.6&quot;, O_RDONLY) = 3<br />
read(3, &quot;\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P4\0\000&quot;..., 512) = 512<br />
fstat64(3, {st_mode=S_IFREG|0644, st_size=153424, ...}) = 0<br />
mmap2(NULL, 155776, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e81000<br />
mmap2(0xb7ea6000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24) = 0xb7ea6000<br />
close(3) = 0<br />
access(&quot;/etc/ld.so.nohwcap&quot;, F_OK) = -1 ENOENT (No such file or directory)<br />
open(&quot;/lib/libgcc_s.so.1&quot;, O_RDONLY) = 3<br />
read(3, &quot;\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\34\0&quot;..., 512) = 512<br />
fstat64(3, {st_mode=S_IFREG|0644, st_size=42796, ...}) = 0<br />
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7e80000<br />
mmap2(NULL, 45892, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e74000<br />
mmap2(0xb7e7f000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xa) = 0xb7e7f000<br />
close(3) = 0<br />
access(&quot;/etc/ld.so.nohwcap&quot;, F_OK) = -1 ENOENT (No such file or directory)<br />
open(&quot;/lib/tls/i686/cmov/libc.so.6&quot;, O_RDONLY) = 3<br />
read(3, &quot;\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0`\1\000&quot;..., 512) = 512<br />
fstat64(3, {st_mode=S_IFREG|0644, st_size=1307104, ...}) = 0<br />
mmap2(NULL, 1312164, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7d33000<br />
mmap2(0xb7e6e000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13b) = 0xb7e6e000<br />
mmap2(0xb7e71000, 9636, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7e71000<br />
close(3) = 0<br />
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7d32000<br />
set_thread_area({entry_number:-1 -&gt; 6, base_addr:0xb7d326d0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0<br />
mprotect(0xb7e6e000, 4096, PROT_READ) = 0<br />
mprotect(0xb7f87000, 12288, PROT_READ) = 0<br />
munmap(0xb7f92000, 39808) = 0</p>
</blockquote>
<p>Etwa bis hier hin lädt er Shared Objects. Und so Zeug.</p>
<p>Saraneus schrieb:</p>
<blockquote>
<p>brk(0) = 0x804b000<br />
brk(0x806c000) = 0x806c000<br />
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0<br />
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9b000</p>
</blockquote>
<p>Frag mich nicht.</p>
<p>Saraneus schrieb:</p>
<blockquote>
<p>write(1, &quot;ChatServer v0.1\n&quot;, 16ChatServer v0.1<br />
) = 16<br />
brk(0x808d000) = 0x808d000<br />
brk(0x80ae000) = 0x80ae000<br />
brk(0x80cf000) = 0x80cf000<br />
brk(0x80f0000) = 0x80f0000<br />
brk(0x8111000) = 0x8111000<br />
brk(0x8132000) = 0x8132000<br />
brk(0x8153000) = 0x8153000<br />
usw.<br />
brk(0x96fb000) = 0x96fb000<br />
brk(0x971c000) = 0x971c000<br />
brk(0x973d000) = 0x973d000</p>
</blockquote>
<p>Hier macht dein toller Chatserver die ganzen news.</p>
<p>Saraneus schrieb:</p>
<blockquote>
<p>write(1, &quot;\n&quot;, 1<br />
) = 1<br />
fstat64(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0<br />
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9a000<br />
write(1, &quot;finished&quot;, 8finished) = 8<br />
read(0, a<br />
&quot;a\n&quot;, 1024) = 2<br />
exit_group(0) = ?<br />
Process 5651 detached</p>
</blockquote>
<p>unbrk() gibts halt nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278378</guid><dc:creator><![CDATA[Mr. N]]></dc:creator><pubDate>Thu, 03 May 2007 19:47:26 GMT</pubDate></item><item><title><![CDATA[Reply to delete gibt Speicher nicht frei on Thu, 03 May 2007 19:51:48 GMT]]></title><description><![CDATA[<p>Folgende Version funktioniert aber, d.h. &quot;top&quot; spuckt beim Speicherverbrauch immer 0.1% aus.</p>
<pre><code class="language-cpp">IrgendeineKlasse *instanz;
while(1) {
    instanz = new IrgendeineKlasse(0);
    delete instanz;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1278382</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278382</guid><dc:creator><![CDATA[Saraneus]]></dc:creator><pubDate>Thu, 03 May 2007 19:51:48 GMT</pubDate></item><item><title><![CDATA[Reply to delete gibt Speicher nicht frei on Thu, 03 May 2007 21:27:28 GMT]]></title><description><![CDATA[<p>Saraneus schrieb:</p>
<blockquote>
<p>Folgende Version funktioniert aber, d.h. &quot;top&quot; spuckt beim Speicherverbrauch immer 0.1% aus.</p>
<pre><code class="language-cpp">IrgendeineKlasse *instanz;
while(1) {
    instanz = new IrgendeineKlasse(0);
    delete instanz;
}
</code></pre>
</blockquote>
<p>Weil er ja das gelöschte wiederverwenden kann. Es <strong>wird</strong> freigegeben, allerdings nur innerhalb des Programms.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278435</guid><dc:creator><![CDATA[Mr. N]]></dc:creator><pubDate>Thu, 03 May 2007 21:27:28 GMT</pubDate></item></channel></rss>