<?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[Heap und Stack]]></title><description><![CDATA[<p>Eine Frage:</p>
<p>Ich habe eine Klasse CKlasse. Wenn ich nun ein Objekt mit</p>
<pre><code class="language-cpp">CKlasse objekt;
</code></pre>
<p>erstelle, befindet es sich auf dem Stack. Bei</p>
<pre><code class="language-cpp">CKlasse p_objekt=new CKlasse;
</code></pre>
<p>befindet es sich auf dem Heap.</p>
<p>Aber was ist, wenn ich noch eine Struktur</p>
<pre><code class="language-cpp">struct STRUKTUR
{
    CKlasse objekt;
}
</code></pre>
<p>habe und das ganze dann so deklariere:</p>
<pre><code class="language-cpp">STRUKTUR p_strukturvariable=new STRUKTUR;
</code></pre>
<p>Die Strukturvariable wird ja jetzt dynamisch auf dem Heap erstellt, aber das Klassenobjekt ist innerhalb der Struktur wie ein statisches Objekt auf dem Stack deklariert. Wo befindet sich jetzt also das Objekt der Klasse? Auf dem Heap oder auf dem Stack?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/134212/heap-und-stack</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 11:37:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/134212.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 24 Jan 2006 15:18:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Heap und Stack on Tue, 24 Jan 2006 15:18:59 GMT]]></title><description><![CDATA[<p>Eine Frage:</p>
<p>Ich habe eine Klasse CKlasse. Wenn ich nun ein Objekt mit</p>
<pre><code class="language-cpp">CKlasse objekt;
</code></pre>
<p>erstelle, befindet es sich auf dem Stack. Bei</p>
<pre><code class="language-cpp">CKlasse p_objekt=new CKlasse;
</code></pre>
<p>befindet es sich auf dem Heap.</p>
<p>Aber was ist, wenn ich noch eine Struktur</p>
<pre><code class="language-cpp">struct STRUKTUR
{
    CKlasse objekt;
}
</code></pre>
<p>habe und das ganze dann so deklariere:</p>
<pre><code class="language-cpp">STRUKTUR p_strukturvariable=new STRUKTUR;
</code></pre>
<p>Die Strukturvariable wird ja jetzt dynamisch auf dem Heap erstellt, aber das Klassenobjekt ist innerhalb der Struktur wie ein statisches Objekt auf dem Stack deklariert. Wo befindet sich jetzt also das Objekt der Klasse? Auf dem Heap oder auf dem Stack?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/975058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/975058</guid><dc:creator><![CDATA[Meyer]]></dc:creator><pubDate>Tue, 24 Jan 2006 15:18:59 GMT</pubDate></item><item><title><![CDATA[Reply to Heap und Stack on Tue, 24 Jan 2006 15:38:51 GMT]]></title><description><![CDATA[<p>Auf dem Heap.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/975079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/975079</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Tue, 24 Jan 2006 15:38:51 GMT</pubDate></item><item><title><![CDATA[Reply to Heap und Stack on Tue, 24 Jan 2006 15:40:24 GMT]]></title><description><![CDATA[<p>Meyer schrieb:</p>
<blockquote>
<p>[...] aber das Klassenobjekt ist innerhalb der Struktur wie ein statisches Objekt auf dem Stack deklariert.</p>
</blockquote>
<p>Nö, das Klassenobjekt ist als Bestandteil der Struktur deklariert, nichts weiter.</p>
<blockquote>
<p>Wo befindet sich jetzt also das Objekt der Klasse? Auf dem Heap oder auf dem Stack?</p>
</blockquote>
<p>Dort wo sich das Objekt der Struktur auch befindet, in Deinem Beispiel also auf dem Heap.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/975082</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/975082</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 24 Jan 2006 15:40:24 GMT</pubDate></item><item><title><![CDATA[Reply to Heap und Stack on Tue, 24 Jan 2006 15:41:54 GMT]]></title><description><![CDATA[<p>Wie du richtig erkannt hast: es handelt sich hierbei um eine Klassendeklaration und nicht um die Erzeugung eines Objekts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/975086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/975086</guid><dc:creator><![CDATA[Any]]></dc:creator><pubDate>Tue, 24 Jan 2006 15:41:54 GMT</pubDate></item><item><title><![CDATA[Reply to Heap und Stack on Tue, 24 Jan 2006 15:48:27 GMT]]></title><description><![CDATA[<p>Meyer schrieb:</p>
<blockquote>
<p>Ich habe eine Klasse CKlasse. Wenn ich nun ein Objekt mit</p>
<pre><code class="language-cpp">CKlasse objekt;
</code></pre>
<p>erstelle, befindet es sich auf dem Stack.</p>
</blockquote>
<p>Richtig.</p>
<blockquote>
<p>Bei</p>
<pre><code class="language-cpp">CKlasse p_objekt=new CKlasse;
</code></pre>
<p>befindet es sich auf dem Heap.</p>
</blockquote>
<p>Du meinst sicher *p_objekt. Aufpassen: Das mit new erzeugte Objekt liegt auf dem Heap, p_objekt liegt auf dem Stack (sorry fuer die uebermaessige Pedanterie.)</p>
<blockquote>
<p>Aber was ist, wenn ich noch eine Struktur</p>
<pre><code class="language-cpp">struct STRUKTUR
{
    CKlasse objekt;
}
</code></pre>
<p>habe und das ganze dann so deklariere:</p>
<pre><code class="language-cpp">STRUKTUR p_strukturvariable=new STRUKTUR;
</code></pre>
<p>Die Strukturvariable wird ja jetzt dynamisch auf dem Heap erstellt, aber das Klassenobjekt ist innerhalb der Struktur wie ein statisches Objekt auf dem Stack deklariert. Wo befindet sich jetzt also das Objekt der Klasse? Auf dem Heap oder auf dem Stack?</p>
</blockquote>
<p>Geographisch gesehen liegt das Objekt auch auf dem Heap. Und hier kommen wir in Konflikte mit diesen seltsamen Begriffen: Wenn wir sagen, ein Objekt liegt auf dem Stack oder Heap, meinen wir eigentlich nicht, wo genau das im Speicher liegt, sondern welche Sichtbarkeit und Lebensdauer es hat. Man sagt halt &quot;Stack&quot; zu automatischen Objekten, also solche, die am Ende ihres Gueltigkeitsbereiches automatisch zerstoert werden, und man sagt &quot;Heap&quot;, wenn man meint, dass sie mit delete manuell zerstoert werden. Wenn das zu ungenau wird, muss man explizit werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/975090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/975090</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Tue, 24 Jan 2006 15:48:27 GMT</pubDate></item></channel></rss>