<?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[Wo befinden sich die Membervariablen wenn ich die Instanz mit new anlege?]]></title><description><![CDATA[<pre><code class="language-cpp">class Test
{
	char buf[9000000];
};

Test* pTest = new Test();
</code></pre>
<p>Irgendwie krieg ich keinen Stack-Overflow wenn ich den Code oben nutze. Lege ich die Instanz auf dem Stack an, krieg ich einen.<br />
Werden die Membervariablen etwa auf dem Heap angelegt wenn ich eine Instanz der Klasse auf dem Heap erstelle?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/119428/wo-befinden-sich-die-membervariablen-wenn-ich-die-instanz-mit-new-anlege</link><generator>RSS for Node</generator><lastBuildDate>Sat, 22 Aug 2026 03:21:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/119428.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 01 Sep 2005 00:30:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wo befinden sich die Membervariablen wenn ich die Instanz mit new anlege? on Thu, 01 Sep 2005 00:30:38 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class Test
{
	char buf[9000000];
};

Test* pTest = new Test();
</code></pre>
<p>Irgendwie krieg ich keinen Stack-Overflow wenn ich den Code oben nutze. Lege ich die Instanz auf dem Stack an, krieg ich einen.<br />
Werden die Membervariablen etwa auf dem Heap angelegt wenn ich eine Instanz der Klasse auf dem Heap erstelle?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/862444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862444</guid><dc:creator><![CDATA[hippo]]></dc:creator><pubDate>Thu, 01 Sep 2005 00:30:38 GMT</pubDate></item><item><title><![CDATA[Reply to Wo befinden sich die Membervariablen wenn ich die Instanz mit new anlege? on Thu, 01 Sep 2005 05:00:50 GMT]]></title><description><![CDATA[<p>Wenn Du auf dem Heap anlegst, wird auch Heap verbraucht <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="😉"
    /> Legst Du auf dem Stack an, wird Stack verbraucht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/862457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862457</guid><dc:creator><![CDATA[7H3 N4C3R]]></dc:creator><pubDate>Thu, 01 Sep 2005 05:00:50 GMT</pubDate></item><item><title><![CDATA[Reply to Wo befinden sich die Membervariablen wenn ich die Instanz mit new anlege? on Thu, 01 Sep 2005 06:20:41 GMT]]></title><description><![CDATA[<p>hippo schrieb:</p>
<blockquote>
<p>Werden die Membervariablen etwa auf dem Heap angelegt wenn ich eine Instanz der Klasse auf dem Heap erstelle?</p>
</blockquote>
<p>Ist das sowas wie 'ne Fangfrage?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/862477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862477</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Thu, 01 Sep 2005 06:20:41 GMT</pubDate></item><item><title><![CDATA[Reply to Wo befinden sich die Membervariablen wenn ich die Instanz mit new anlege? on Thu, 01 Sep 2005 07:32:26 GMT]]></title><description><![CDATA[<p>Nein, die Frage ist garnicht so dumm. Immerhin hat er ja laut Syntax 900000 chars als Stackvariable definiert. Jetzt völlig unabhängig vom Instanzierungskontext.</p>
<p>Letztendlich ist aber natürlich bei einer Heap-Instanzierung der Klasse aber ein Anlegen der chars auf dem Stack undenkbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/862503</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862503</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Thu, 01 Sep 2005 07:32:26 GMT</pubDate></item><item><title><![CDATA[Reply to Wo befinden sich die Membervariablen wenn ich die Instanz mit new anlege? on Thu, 01 Sep 2005 07:59:18 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>Immerhin hat er ja laut Syntax 900000 chars als Stackvariable definiert.</p>
</blockquote>
<p>Was meinst Du mit Stackvariable? buf hat innerhalb der Klasse Test automatic storage. Solange wie ein Objekt vom Typ Test lebt, lebt auch buf. Das sagt aber nix darüber aus, wo das Ding denn auch nun angelegt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/862513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862513</guid><dc:creator><![CDATA[7H3 N4C3R]]></dc:creator><pubDate>Thu, 01 Sep 2005 07:59:18 GMT</pubDate></item><item><title><![CDATA[Reply to Wo befinden sich die Membervariablen wenn ich die Instanz mit new anlege? on Thu, 01 Sep 2005 08:28:24 GMT]]></title><description><![CDATA[<p>Hmm prinzipiell sehe ich keinen Grund warum die Variable nicht auch auf dem Stack anlegbar sein sollte. Es sind keine voneinander pyhsikalisch getrennte Speicherbereiche, die eine feste Größe besitzen, viel mehr wird der zur Verfügung stehende Speicher zwischen Heap und Stack aufgeteilt. Sie sind hierbei so organisiert, dass der freie Speicher sowohl zum Wachsen des Heaps als auch zum Erweitern des Stacks nutzbar ist.</p>
<p>Was natürlich sein kann ist, dass der Heap durch Fragmentierung des Speichers sehr groß wird und der Stack nicht mehr wachsen kann, obwohl noch jede Menge Speicher im Heap zur Verfügung steht....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/862539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862539</guid><dc:creator><![CDATA[Mathias]]></dc:creator><pubDate>Thu, 01 Sep 2005 08:28:24 GMT</pubDate></item><item><title><![CDATA[Reply to Wo befinden sich die Membervariablen wenn ich die Instanz mit new anlege? on Thu, 01 Sep 2005 08:31:34 GMT]]></title><description><![CDATA[<p>Achja, die Variablen eines Objekts werden dort angelegt wo das Objekt angelegt wird.</p>
<p>(Ausnahme bilden natürlich die Variablen, deren Inhalt mit new angelegt worden sind. Diese befinden sich immer im Heap.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/862543</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862543</guid><dc:creator><![CDATA[Mathias]]></dc:creator><pubDate>Thu, 01 Sep 2005 08:31:34 GMT</pubDate></item><item><title><![CDATA[Reply to Wo befinden sich die Membervariablen wenn ich die Instanz mit new anlege? on Thu, 01 Sep 2005 08:33:06 GMT]]></title><description><![CDATA[<p>Zumindest unter Windows wird die maximale Stacksize durch die zur Compilezeit angegebenen Grenzen beschränkt. Für den Primary Thread ist das auf jeden Fall fix, für nachträglich erzeugte Threads kann man die auch nochmal zur Laufzeit ändern.</p>
<p>Das sind aber spezifische Sachen. Ohne es jetzt nachgeschlagen zu haben meine ich, dass der Standard dir aber sonst keine Garantien über Größenverhältnisse von Stack/Heap/Freispeicher gibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/862546</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862546</guid><dc:creator><![CDATA[7H3 N4C3R]]></dc:creator><pubDate>Thu, 01 Sep 2005 08:33:06 GMT</pubDate></item><item><title><![CDATA[Reply to Wo befinden sich die Membervariablen wenn ich die Instanz mit new anlege? on Thu, 01 Sep 2005 11:21:32 GMT]]></title><description><![CDATA[<p>@7H3 N4C3R<br />
Mach mich nicht schwach... im allgemeinen drüfte es extrem schwierig sein den für den Stack benötigten Speicher im Voraus festzulegen bzw. zu berechnen.<br />
Und selbst wenn, wozu sollte das ganze gut sein außer die Entwickler und die Anwender zu ärgern?<br />
Gibt gar keinen Grund den Stack auf einen festen Wert zu begrenzen, der in keinem Zusammenhang mit dem verfügbaren RAM steht.</p>
<p>Die Compiler und Linker-Einstellungen dienen wohl eher dazu die Anfangsgröße festzulegen, die direkt beim Programmstart reserviert werden soll.<br />
<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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/862657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862657</guid><dc:creator><![CDATA[Mathias]]></dc:creator><pubDate>Thu, 01 Sep 2005 11:21:32 GMT</pubDate></item><item><title><![CDATA[Reply to Wo befinden sich die Membervariablen wenn ich die Instanz mit new anlege? on Thu, 01 Sep 2005 11:45:43 GMT]]></title><description><![CDATA[<p>Mathias schrieb:</p>
<blockquote>
<p>Die Compiler und Linker-Einstellungen dienen wohl eher dazu die Anfangsgröße festzulegen, die direkt beim Programmstart reserviert werden soll.<br />
<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="🙂"
    /></p>
</blockquote>
<p>Ist nunmal so <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="😉"
    /> Anfangs- &amp; Max. Größe wird fix gesetzt. Gelesen in &quot;Windows Multithreading&quot; vom mitp Verlag.<br />
Das dient bespielsweise dazu, dass eine außer Kontrolle geratene Rekursion nicht sämtliche Ressourcen deines Systems verbrezelt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/862679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862679</guid><dc:creator><![CDATA[7H3 N4C3R]]></dc:creator><pubDate>Thu, 01 Sep 2005 11:45:43 GMT</pubDate></item><item><title><![CDATA[Reply to Wo befinden sich die Membervariablen wenn ich die Instanz mit new anlege? on Thu, 01 Sep 2005 13:04:21 GMT]]></title><description><![CDATA[<p>Mathias schrieb:</p>
<blockquote>
<p>Gibt gar keinen Grund den Stack auf einen festen Wert zu begrenzen, der in keinem Zusammenhang mit dem verfügbaren RAM steht.</p>
</blockquote>
<p>Dafür gibt es viele gute Gründe. Nicht zuletzt den, dass der stack ein zusammenhängendes Stück Speicher (im virtuellen Adressraum) sein muss. Und herumkopieren, wenn er vergrössert werden müsste, ist nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/862752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862752</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 01 Sep 2005 13:04:21 GMT</pubDate></item><item><title><![CDATA[Reply to Wo befinden sich die Membervariablen wenn ich die Instanz mit new anlege? on Thu, 01 Sep 2005 13:04:24 GMT]]></title><description><![CDATA[<p>Was mich wundert ist, woher weisst Du so genau, dass genau hier der Fehler auftritt und warum weisst Du, dass dies die Ursache ist.</p>
<p>Es kann durchaus sein, dass der Stack schon woanders ueber-/gefuellt wird und dieser kl. Aufruf nur &quot;das Fass zum Ueberlaufen bringt.</p>
<p>Mein erster Verdacht sind bei solchen Fehlern immer amoklaufende Rekursionen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/862753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862753</guid><dc:creator><![CDATA[MBCS-CITP]]></dc:creator><pubDate>Thu, 01 Sep 2005 13:04:24 GMT</pubDate></item><item><title><![CDATA[Reply to Wo befinden sich die Membervariablen wenn ich die Instanz mit new anlege? on Thu, 01 Sep 2005 14:12:55 GMT]]></title><description><![CDATA[<p>Mathias schrieb:</p>
<blockquote>
<p>Gibt gar keinen Grund den Stack auf einen festen Wert zu begrenzen, der in keinem Zusammenhang mit dem verfügbaren RAM steht.</p>
</blockquote>
<p>Bei Multithreading gehts nicht anders. Ansonsten hast du IMHO technisch gesehen recht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/862829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/862829</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 01 Sep 2005 14:12:55 GMT</pubDate></item><item><title><![CDATA[Reply to Wo befinden sich die Membervariablen wenn ich die Instanz mit new anlege? on Thu, 01 Sep 2005 21:12:27 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>Nein, die Frage ist garnicht so dumm.</p>
</blockquote>
<p>Nun, darüber lässt sich streiten. <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>Artchi schrieb:</p>
<blockquote>
<p>Immerhin hat er ja laut Syntax 900000 chars als Stackvariable definiert.</p>
</blockquote>
<p>Ach ja? Woran siehst du denn, dass es eine Stackvariable ist?</p>
<p>Artchi schrieb:</p>
<blockquote>
<p>Jetzt völlig unabhängig vom Instanzierungskontext.</p>
</blockquote>
<p>Das ist aber genau der springende Punkt. Alles was du siehst, ist eine leblose Hülle, die einen Speicherbereich von 9000000 char's beschreibt. Zu diesem Zeitpunkt hast du weder eine Variable, und erst recht keine Stackvariable. Erst bei der Erzeugung eines Objektes wird anhand der Art der Definition auch der Speichertyp festgelegt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/863215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/863215</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Thu, 01 Sep 2005 21:12:27 GMT</pubDate></item><item><title><![CDATA[Reply to Wo befinden sich die Membervariablen wenn ich die Instanz mit new anlege? on Fri, 02 Sep 2005 04:17:22 GMT]]></title><description><![CDATA[<blockquote>
<p>Das ist aber genau der springende Punkt. Alles was du siehst, ist eine leblose Hülle, die einen Speicherbereich von 9000000 char's beschreibt. Zu diesem Zeitpunkt hast du weder eine Variable, und erst recht keine Stackvariable. Erst bei der Erzeugung eines Objektes wird anhand der Art der Definition auch der Speichertyp festgelegt.</p>
</blockquote>
<p>ich glaube, das weis er ;). Er wollte damit nur sagen, dass die syntax genauso wie bei einem array ist, welches immer auf dem stack liegt, und dass dieser Gedanke deshalb nicht so abwegig ist <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>
]]></description><link>https://www.c-plusplus.net/forum/post/863300</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/863300</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Fri, 02 Sep 2005 04:17:22 GMT</pubDate></item><item><title><![CDATA[Reply to Wo befinden sich die Membervariablen wenn ich die Instanz mit new anlege? on Fri, 02 Sep 2005 05:25:06 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>ich glaube, das weis er ;).</p>
</blockquote>
<p>Die Erklärung war ja auch eher für den Threadersteller gedacht. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/863313</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/863313</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Fri, 02 Sep 2005 05:25:06 GMT</pubDate></item><item><title><![CDATA[Reply to Wo befinden sich die Membervariablen wenn ich die Instanz mit new anlege? on Fri, 02 Sep 2005 06:47:01 GMT]]></title><description><![CDATA[<p>groovemaster schrieb:</p>
<blockquote>
<p>otze schrieb:</p>
<blockquote>
<p>ich glaube, das weis er ;).</p>
</blockquote>
<p>Die Erklärung war ja auch eher für den Threadersteller gedacht. <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>dan darfst du auf ein zitat nicht mit &quot;du&quot; antworten <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>
]]></description><link>https://www.c-plusplus.net/forum/post/863340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/863340</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Fri, 02 Sep 2005 06:47:01 GMT</pubDate></item><item><title><![CDATA[Reply to Wo befinden sich die Membervariablen wenn ich die Instanz mit new anlege? on Fri, 02 Sep 2005 12:11:40 GMT]]></title><description><![CDATA[<p>Deshalb bleibt der Kontext trotzdem unbezogen. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/863560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/863560</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Fri, 02 Sep 2005 12:11:40 GMT</pubDate></item><item><title><![CDATA[Reply to Wo befinden sich die Membervariablen wenn ich die Instanz mit new anlege? on Fri, 02 Sep 2005 13:02:40 GMT]]></title><description><![CDATA[<p><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="🙄"
    /> <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="🙄"
    /> <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="🙄"
    /> <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="🙄"
    /> <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="🙄"
    /> <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="🙄"
    /> <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="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/863604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/863604</guid><dc:creator><![CDATA[:rolleyes:]]></dc:creator><pubDate>Fri, 02 Sep 2005 13:02:40 GMT</pubDate></item></channel></rss>