<?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[variable Array-Größen]]></title><description><![CDATA[<p>Hallo an alle Forenleser!<br />
Ich habe erst vor kurzer Zeit angefangen, C++ zu lernen, und arbeite mich zur Zeit durch diverse Tutorials durch.<br />
Dabei bin ich über eine Sache gestolptert:</p>
<p>man kann angeblich Arrays mit einer erst zur Laufzeit bekannten Größe nur durch dynamische Speicherreservierung erstellen.<br />
in dem Beispiel aus <a href="http://www.cplusplus.com/doc/tutorial/dynamic.html" rel="nofollow">diesem Tutorial</a> wird das array durch</p>
<pre><code class="language-cpp">int* p;
p= new int[i];
</code></pre>
<p>erstellt.</p>
<p>Wenn ich jedoch den Code so verändere, dass das Array einfach durch</p>
<pre><code class="language-cpp">int array[i];
</code></pre>
<p>erstellt wird, erhalte keinen fehler und das programm läuft einwandfrei</p>
<p>Warum sollte man also die kompliziertere Methode verwenden?</p>
<p>(Ich benutze die neuste Version des GCC c++ compilers)</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/189489/variable-array-größen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 08:59:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/189489.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 13 Aug 2007 15:33:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to variable Array-Größen on Mon, 13 Aug 2007 15:33:29 GMT]]></title><description><![CDATA[<p>Hallo an alle Forenleser!<br />
Ich habe erst vor kurzer Zeit angefangen, C++ zu lernen, und arbeite mich zur Zeit durch diverse Tutorials durch.<br />
Dabei bin ich über eine Sache gestolptert:</p>
<p>man kann angeblich Arrays mit einer erst zur Laufzeit bekannten Größe nur durch dynamische Speicherreservierung erstellen.<br />
in dem Beispiel aus <a href="http://www.cplusplus.com/doc/tutorial/dynamic.html" rel="nofollow">diesem Tutorial</a> wird das array durch</p>
<pre><code class="language-cpp">int* p;
p= new int[i];
</code></pre>
<p>erstellt.</p>
<p>Wenn ich jedoch den Code so verändere, dass das Array einfach durch</p>
<pre><code class="language-cpp">int array[i];
</code></pre>
<p>erstellt wird, erhalte keinen fehler und das programm läuft einwandfrei</p>
<p>Warum sollte man also die kompliziertere Methode verwenden?</p>
<p>(Ich benutze die neuste Version des GCC c++ compilers)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1343802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1343802</guid><dc:creator><![CDATA[Eradest]]></dc:creator><pubDate>Mon, 13 Aug 2007 15:33:29 GMT</pubDate></item><item><title><![CDATA[Reply to variable Array-Größen on Mon, 13 Aug 2007 15:38:30 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/16825">@Eradest</a><br />
Du stützt dich hier auf eine Erweiterung des Gnu-Compilers. Variable-Length-Arrays sind ein C99-Feature. Sie gehören aber nicht zu Standard-C++. Wenn du also Standard-C++ schreiben willst, wirst du auf sie verzichten und new (oder besser: std::vector) einsetzen müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1343807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1343807</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Mon, 13 Aug 2007 15:38:30 GMT</pubDate></item><item><title><![CDATA[Reply to variable Array-Größen on Tue, 14 Aug 2007 08:37:11 GMT]]></title><description><![CDATA[<p>Hierzu noch eine Frage.<br />
Wo wird denn das VLA eigentlich angelegt. Schätze mal auf den Stack.<br />
Dann wären diese Dinger aber ganz böse und echte Stackbrecher oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344121</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344121</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Tue, 14 Aug 2007 08:37:11 GMT</pubDate></item><item><title><![CDATA[Reply to variable Array-Größen on Tue, 14 Aug 2007 08:48:45 GMT]]></title><description><![CDATA[<p>Naja, der Stack ist ja nu nich SO klein, von daher sollte es keine Probleme geben, wenn du nicht grade ein ueberdimensioniertes Array auf dem Stack anlegen willst. Und in so einem Fall waere es dann egal ob es VLA oder standard array ist.<br />
Ich vermute mal, dass der Compiler irgendwo auf dem Stack abspeichert, wie lang das VLA denn nu ist, so dass da nicht uebermaessig viel Speicher verloren geht. Soweit ich das verstnaden hab heisst VLA ja auch nicht, dass man die Laenge des Arrays zur Laufzeit veraendert, sondern erst zur Laufzeit festlegt, wie lang das Array bei Initialisierung sein soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344127</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 14 Aug 2007 08:48:45 GMT</pubDate></item><item><title><![CDATA[Reply to variable Array-Größen on Tue, 14 Aug 2007 09:16:11 GMT]]></title><description><![CDATA[<p>Also ich befürchte schon, dass VLAs riskanter sind als &quot;normale Arrays&quot;:<br />
- Lt Standard kann bereits der Compiler feststellen, wie viel Platz maximal auf dem Stack benötigt werden wird und<br />
- eine konstante Größenangabe macht man nicht so leicht falsch wie eine zur Laufzeit bestimmte.</p>
<p>Das soll jetzt nicht bedeuten, dass VLAs eine schlechte Sache seien, nur würde ich eben schon vermuten, dass man dort durchaus öfter (als bei fixed length arrays) mal Probleme mit der Stackgröße bekommt.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344142</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 14 Aug 2007 09:16:11 GMT</pubDate></item></channel></rss>