<?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[int a[variable]; ???!]]></title><description><![CDATA[<p>hallo leute</p>
<p>ich hab mich heute mit einem freund aus meinem parallelen informatikkurs utnerhalten. die hören zur zeit ein referat über c++ (also eigendlich ein tutorial) und da ich c++ ganz gut beherrsche hab ich natürlich mal was nachgefragt</p>
<p>so ists nun der fall dass die referierenden denen folgendes beibringen:</p>
<pre><code class="language-cpp">int main()
{
    int x;
    cin &gt;&gt; x;
    int array[x];
    // statt   int * array = new int[x];

    // DO STH
}
</code></pre>
<p>soweit ich weiss benutzen die ein linux system mit Codebloxx und nem gnu compiler (kA obs genau so stimmt und version weiss ich auch nicht)</p>
<p>ich habs immer gelernt dass es halt das mit dem pointer ist<br />
was sagt da der standard zu oder ist das einfahc nur falsch?</p>
<p>mfg mosho</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/262739/int-a-variable</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 10:15:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/262739.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 10 Mar 2010 16:40:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to int a[variable]; ???! on Wed, 10 Mar 2010 16:40:12 GMT]]></title><description><![CDATA[<p>hallo leute</p>
<p>ich hab mich heute mit einem freund aus meinem parallelen informatikkurs utnerhalten. die hören zur zeit ein referat über c++ (also eigendlich ein tutorial) und da ich c++ ganz gut beherrsche hab ich natürlich mal was nachgefragt</p>
<p>so ists nun der fall dass die referierenden denen folgendes beibringen:</p>
<pre><code class="language-cpp">int main()
{
    int x;
    cin &gt;&gt; x;
    int array[x];
    // statt   int * array = new int[x];

    // DO STH
}
</code></pre>
<p>soweit ich weiss benutzen die ein linux system mit Codebloxx und nem gnu compiler (kA obs genau so stimmt und version weiss ich auch nicht)</p>
<p>ich habs immer gelernt dass es halt das mit dem pointer ist<br />
was sagt da der standard zu oder ist das einfahc nur falsch?</p>
<p>mfg mosho</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1867095</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1867095</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Wed, 10 Mar 2010 16:40:12 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Wed, 10 Mar 2010 16:44:09 GMT]]></title><description><![CDATA[<p>Das geht nicht in C++. Das gibt es aber in C (seit C99) und wird dort VLAs genannt. Aus gutem Grund wird es das aber nicht in C++ geben. Kann aber sein, dass der GCC das als Extension für C++ hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1867097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1867097</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Wed, 10 Mar 2010 16:44:09 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Wed, 10 Mar 2010 16:45:27 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>was sagt da der standard zu oder ist das einfahc nur falsch?</p>
</blockquote>
<p>Das, was du da geschrieben hast, ist kein gültiges C++, denn im aktuellen Standard muss die Größe eines Arrays auf dem Stack ein konstanter Ausdruck sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1867098</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1867098</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Wed, 10 Mar 2010 16:45:27 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Wed, 10 Mar 2010 16:46:31 GMT]]></title><description><![CDATA[<p>ja der meinung bin ich auch<br />
aber ich wollte halt mal nachfragen</p>
<p>ich kenne mich nciht so auf den standard komitee seiten aus, wo man was fidnet und so</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1867099</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1867099</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Wed, 10 Mar 2010 16:46:31 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Wed, 10 Mar 2010 18:59:37 GMT]]></title><description><![CDATA[<p>rüdiger schrieb:</p>
<blockquote>
<p>Aus gutem Grund wird es das aber nicht in C++ geben.</p>
</blockquote>
<p>Aus welchem Grund? Ich finde so ein Feature nicht schlecht. Das wäre wie ein new ohne delete[].</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1867164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1867164</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 10 Mar 2010 18:59:37 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Wed, 10 Mar 2010 22:23:50 GMT]]></title><description><![CDATA[<p>Z schrieb:</p>
<blockquote>
<p>rüdiger schrieb:</p>
<blockquote>
<p>Aus gutem Grund wird es das aber nicht in C++ geben.</p>
</blockquote>
<p>Aus welchem Grund? Ich finde so ein Feature nicht schlecht. Das wäre wie ein new ohne delete[].</p>
</blockquote>
<p>Ja, und das autet in C++</p>
<pre><code>std::vector&lt;int&gt; array(x)
</code></pre>
<p>Lars</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1867238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1867238</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 10 Mar 2010 22:23:50 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Wed, 10 Mar 2010 22:25:09 GMT]]></title><description><![CDATA[<p>Vielleicht, weil's dann an zu vielen Stellen stehen könnte, wo's nicht hingehört.<br />
z.B. im globalen Bereich, mit extern in Headern, in Klassen/Struct-Deklarationen usw. Eigentlich sieht's ja hübsch aus und würde vermutlich viele Fehler wegen fehlendem delete[] oder nur der Klammern am delete verhindern. Antwort interessiert mich auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1867239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1867239</guid><dc:creator><![CDATA[Bitsy]]></dc:creator><pubDate>Wed, 10 Mar 2010 22:25:09 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Wed, 10 Mar 2010 23:49:21 GMT]]></title><description><![CDATA[<p>Z schrieb:</p>
<blockquote>
<p>rüdiger schrieb:</p>
<blockquote>
<p>Aus gutem Grund wird es das aber nicht in C++ geben.</p>
</blockquote>
<p>Aus welchem Grund? Ich finde so ein Feature nicht schlecht. Das wäre wie ein new ohne delete[].</p>
</blockquote>
<p>Das Feature ist schlecht, weil es keinen Weg gibt zu überprüfen ob überhaupt noch genug Speicher auf dem Stack vorhanden ist und es gibt keinen Weg den Fehlerfall zu behandeln.</p>
<p>Ich muss zugeben, dass es auf den ersten Blick gut wirkt. Aber es ist im Endeffekt doch ziemlich böse und alles andere als trivial.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1867271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1867271</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Wed, 10 Mar 2010 23:49:21 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Thu, 11 Mar 2010 11:46:02 GMT]]></title><description><![CDATA[<p>Es ist eine potentielle Sicherheitsluecke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1867430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1867430</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Thu, 11 Mar 2010 11:46:02 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Thu, 11 Mar 2010 13:01:39 GMT]]></title><description><![CDATA[<p>Es wäre ein nettes Feature. Nix Sicherheitslücke. Nix Speichermangel. Es wäre SCHNELL.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1867476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1867476</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 11 Mar 2010 13:01:39 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Thu, 11 Mar 2010 15:05:11 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Es ist eine potentielle Sicherheitsluecke.</p>
</blockquote>
<p>Nur wenn der Compiler nicht überprüft ob genug Speicher auf dem Stack vorhanden ist. (Was der GCC afaik leider nicht tut :()</p>
<p>volkard schrieb:</p>
<blockquote>
<p>Es wäre ein nettes Feature. Nix Sicherheitslücke. Nix Speichermangel. Es wäre SCHNELL.</p>
</blockquote>
<p>In C++ könnte man mit einer Exception hier vielleicht sogar etwas machen. Wobei etwas ala <code>new(std::onstack) Foo</code> (im Sinne von <a href="http://man.cx/alloca" rel="nofollow">man: alloca</a>) vielleicht sogar praktischer wäre, weil man dann endlich mal Allocatoren sinnvoll einsetzen könnte und mit einem Schlag die ganzen Container auf den Stack packen kann :).</p>
<p>Man müsste halt in den Standard schreiben, dass ein Compiler hier überprüfen muss, ob genug Speicher vorhanden ist. Weil leider implementiert der GCC zB alloca ohne Überprüfung <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1867545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1867545</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Thu, 11 Mar 2010 15:05:11 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Thu, 11 Mar 2010 15:11:00 GMT]]></title><description><![CDATA[<p>rüdiger schrieb:</p>
<blockquote>
<p>knivil schrieb:</p>
<blockquote>
<p>Es ist eine potentielle Sicherheitsluecke.</p>
</blockquote>
<p>Nur wenn der Compiler nicht überprüft ob genug Speicher auf dem Stack vorhanden ist. (Was der GCC afaik leider nicht tut :()</p>
</blockquote>
<p>Mmh? Wie soll er das denn machen?<br />
Die Grösse ist doch erst zur Laufzeit bekannt!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1867548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1867548</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Thu, 11 Mar 2010 15:11:00 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Thu, 11 Mar 2010 15:56:47 GMT]]></title><description><![CDATA[<p>Der Code den er dafür generiert, sollte das zur Laufzeit überprüfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1867576</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1867576</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Thu, 11 Mar 2010 15:56:47 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Thu, 11 Mar 2010 16:01:22 GMT]]></title><description><![CDATA[<p>rüdiger schrieb:</p>
<blockquote>
<p>Der Code den er dafür generiert, sollte das zur Laufzeit überprüfen.</p>
</blockquote>
<p>Das halte ich für irrelevant. Natürlich knallt man noch nicht megabytegroße Sachen auf den Stack. Stacküberlauf macht eben Programmabsturz. Damit hatte ich noch nie Probleme. Ich kann mir nicht vorstellen, daß jemand damit Probleme hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1867577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1867577</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 11 Mar 2010 16:01:22 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Thu, 11 Mar 2010 16:08:04 GMT]]></title><description><![CDATA[<p>rüdiger schrieb:</p>
<blockquote>
<p>Wobei etwas ala <code>new(std::onstack) Foo</code> (im Sinne von <a href="http://man.cx/alloca" rel="nofollow">man: alloca</a>) vielleicht sogar praktischer wäre, weil man dann endlich mal Allocatoren sinnvoll einsetzen könnte und mit einem Schlag die ganzen Container auf den Stack packen kann :).</p>
</blockquote>
<p>Es ist leider nicht möglich, daß der Konstruktor (eine normal aufgerufene Funktion) mit alloca lokalen Stackspeicher holt und an die aufrufende zurückgibt.</p>
<pre><code>Foo* a=new(std::onstack) Foo;
</code></pre>
<p>würde gehen, aber ist ja nicht besser als</p>
<pre><code>Foo a;
</code></pre>
<p>.</p>
<pre><code>FooVec f(100);//besorgt 100 Plätze auf dem Stack
</code></pre>
<p>klappt irgendwie nicht. Vielleicht nett wäre wohl</p>
<pre><code>FooVec&lt;100&gt; f;
</code></pre>
<p>und manche Template-Parameter als Variable erlauben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1867583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1867583</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 11 Mar 2010 16:08:04 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Thu, 11 Mar 2010 21:19:51 GMT]]></title><description><![CDATA[<p>rüdiger schrieb:</p>
<blockquote>
<p>Z schrieb:</p>
<blockquote>
<p>rüdiger schrieb:</p>
<blockquote>
<p>Aus gutem Grund wird es das aber nicht in C++ geben.</p>
</blockquote>
<p>Aus welchem Grund? Ich finde so ein Feature nicht schlecht. Das wäre wie ein new ohne delete[].</p>
</blockquote>
<p>Das Feature ist schlecht, weil es keinen Weg gibt zu überprüfen ob überhaupt noch genug Speicher auf dem Stack vorhanden ist und es gibt keinen Weg den Fehlerfall zu behandeln.<br />
Ich muss zugeben, dass es auf den ersten Blick gut wirkt. Aber es ist im Endeffekt doch ziemlich böse und alles andere als trivial.</p>
</blockquote>
<p>Jedes Feature kann man falsch verwenden. Ich stehe mehr auf dem Standpunkt, ein Arsenal von Features zu haben, aus denen man sich für den jeweiligen Fall die Mischung zusammenstellen kann. Sonst können wir gleich nur noch in Java oder C# programmieren. <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/1867714</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1867714</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 11 Mar 2010 21:19:51 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Fri, 12 Mar 2010 07:36:50 GMT]]></title><description><![CDATA[<p>Bjarne's C++0x FAQ:</p>
<blockquote>
<p>C99 features:<br />
...<br />
- <em><strong>Not</strong></em> VLAs (Variable Length Arrays; thank heaven for small mercies).</p>
</blockquote>
<p>klingt so, als wäre er froh, dass VLAs nicht dabei sind. Richtig überzeugende Gründe fallen mir aber für keine Position ein. Es ist ja immer eine Kosten/Nutzen-Rechnung. VLAs müssen sich durch Sonderregeln, Komplexität, Inkonsistenzen erkauft werden. Lohnt sich das?<br />
- sizeof würde kein reiner Compile-Zeit-Mechanismus mehr bleiben<br />
- Was ist der Typ eines VLAs? Ist er unvollständig?<br />
- Wie ist das Zusammenspiel mit Templates? (zB bzgl argument deduction, ...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1867770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1867770</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Fri, 12 Mar 2010 07:36:50 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Fri, 12 Mar 2010 07:48:03 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>rüdiger schrieb:</p>
<blockquote>
<p>Der Code den er dafür generiert, sollte das zur Laufzeit überprüfen.</p>
</blockquote>
<p>Das halte ich für irrelevant. Natürlich knallt man noch nicht megabytegroße Sachen auf den Stack. Stacküberlauf macht eben Programmabsturz. Damit hatte ich noch nie Probleme. Ich kann mir nicht vorstellen, daß jemand damit Probleme hat.</p>
</blockquote>
<p>Jemand hat spätestens Probleme damit, wenn der Stack manchmal überläuft und manchmal nicht, je nach Benutzereingabe (und das am besten schon beim Kunden <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/1867774</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1867774</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 12 Mar 2010 07:48:03 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Fri, 12 Mar 2010 07:57:58 GMT]]></title><description><![CDATA[<p>Z schrieb:</p>
<blockquote>
<p>Jedes Feature kann man falsch verwenden. Ich stehe mehr auf dem Standpunkt, ein Arsenal von Features zu haben, aus denen man sich für den jeweiligen Fall die Mischung zusammenstellen kann. Sonst können wir gleich nur noch in Java oder C# programmieren. <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>Klar kann man jedes Feature falsch verwenden. Es gibt aber auch Features die man bestenfalls nur sehr schwer richtig verwenden kann, und dazu gehören die gesamten dynamisch veränderlichen und nicht überprüfbaren Giftmüllexporte aus C-Beständen, wie z.B. die Funktionen der printf-Familie, die keinen Längencheck eingebaut haben, VLAs, variable Argumentlisten, diverse void-Pointer-Frickeleien usw.<br />
Mehr Features sind durchaus nicht schlecht, wenn sie einen erkennbaren VOrteil bringen. Mehr Features sind aber dann schlecht, wenn sie nur einen kleinen Vorteil bringen und auf Kosten des wichtigsten Features überhaupt gehen: Der Sicherheit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1867778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1867778</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 12 Mar 2010 07:57:58 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Fri, 12 Mar 2010 11:50:56 GMT]]></title><description><![CDATA[<p>_matze schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>rüdiger schrieb:</p>
<blockquote>
<p>Der Code den er dafür generiert, sollte das zur Laufzeit überprüfen.</p>
</blockquote>
<p>Das halte ich für irrelevant. Natürlich knallt man noch nicht megabytegroße Sachen auf den Stack. Stacküberlauf macht eben Programmabsturz. Damit hatte ich noch nie Probleme. Ich kann mir nicht vorstellen, daß jemand damit Probleme hat.</p>
</blockquote>
<p>Jemand hat spätestens Probleme damit, wenn der Stack manchmal überläuft und manchmal nicht, je nach Benutzereingabe (und das am besten schon beim Kunden <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>Dann ist er dumm und hat es verdient.<br />
Mit solchen Argumenten kannst Du auch Zeiger abschaffen und alles über Referenzen machen wollen. Oder delete abschaffen und einen garbage collector einführen.<br />
Außerdem lege ich jetzt aus Trotz immer 10000-große Arrays auf den Stack und bekomme endlich auch mal einen Ausstieg, wenn der Stack alle ist, und zusätzlich einen, wenn mehr als 10000 Elemente gebraucht werden.</p>
<p>Stellt euch mal vor, ich hätte eine Template-Klasse, die automatisch die Arrays, die mehr als 1000 Bytes belegen, im Freispeicher anlegt. Muß man da jetzt noch Angst haben? Klar, bei 900 rekursiven Aufrufen wirds langsam eng; aber das zusammen tut echt keiner.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1867865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1867865</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 12 Mar 2010 11:50:56 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Fri, 12 Mar 2010 15:48:34 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Stellt euch mal vor, ich hätte eine Template-Klasse, die automatisch die Arrays, die mehr als 1000 Bytes belegen, im Freispeicher anlegt. Muß man da jetzt noch Angst haben? Klar, bei 900 rekursiven Aufrufen wirds langsam eng; aber das zusammen tut echt keiner.</p>
</blockquote>
<p>Naja - aber das kann man auch bisher schon mehr oder weniger - wenn man nen eigenen allocator schreibt, kann man das (mit 1 oder 2 krücken) auch mit ner (zur compilezeit bekannten) konstanten nachbauen...<br />
hab ich auch schon gemacht - kann man eben bis zu ner größe von x bytes den stack nehmen und eben fest die x bytes auf dem stack allozieren - und nur ansonsten halt den heap nutzen...<br />
bequem ist das leider nicht ganz - dafür aber sicher...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1868041</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1868041</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Fri, 12 Mar 2010 15:48:34 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Fri, 12 Mar 2010 16:05:34 GMT]]></title><description><![CDATA[<p>_matze schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>rüdiger schrieb:</p>
<blockquote>
<p>Der Code den er dafür generiert, sollte das zur Laufzeit überprüfen.</p>
</blockquote>
<p>Das halte ich für irrelevant. Natürlich knallt man noch nicht megabytegroße Sachen auf den Stack. Stacküberlauf macht eben Programmabsturz. Damit hatte ich noch nie Probleme. Ich kann mir nicht vorstellen, daß jemand damit Probleme hat.</p>
</blockquote>
<p>Jemand hat spätestens Probleme damit, wenn der Stack manchmal überläuft und manchmal nicht, je nach Benutzereingabe (und das am besten schon beim Kunden <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>
<pre><code class="language-cpp">int foo(unsigned long n)
{
   int a = rand();
   if (n = 0)
     return;
   cout &lt;&lt; &quot;Das Problem gibts schon und niemand stoerts &quot; &lt;&lt; a &lt;&lt; '\n';
   foo(n - 1);
}

int main()
{
   unsigned long n;
   cin &lt;&lt; n;
   foo(n)
}
</code></pre>
<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="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1868050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1868050</guid><dc:creator><![CDATA[Blue-Tiger]]></dc:creator><pubDate>Fri, 12 Mar 2010 16:05:34 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Fri, 12 Mar 2010 17:32:37 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Mehr Features sind durchaus nicht schlecht, wenn sie einen erkennbaren VOrteil bringen. Mehr Features sind aber dann schlecht, wenn sie nur einen kleinen Vorteil bringen und auf Kosten des wichtigsten Features überhaupt gehen: Der Sicherheit.</p>
</blockquote>
<p>Das sehe ich völlig anders. Was ich an C++ sehr schätze, ist die Fülle an Features und dass C++ den Programmierer nicht für unmündig erklärt. &quot;Sicherheit&quot; um jeden Preis hast Du z.B. bei Java, dafür ist Java umständlich, ausdrucksschwach und im Vergleich zu C++ langsam in der Ausführung. Ich möchte so eine Sprache nicht gegen C++ tauschen.</p>
<p>Bei sachgemässer Anwendung machen VLAs keine Probleme. Sie fordern ausserdem nicht mehr Aufmerksamkeit vom Programmierer als andere C++ Features oder C++ an sich. VLAs würden gut zu C++ passen, aber was nicht ist, das ist nicht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1868083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1868083</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 12 Mar 2010 17:32:37 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Fri, 12 Mar 2010 17:56:42 GMT]]></title><description><![CDATA[<p>Blue-Tiger schrieb:</p>
<blockquote>
<p>_matze schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>rüdiger schrieb:</p>
<blockquote>
<p>Der Code den er dafür generiert, sollte das zur Laufzeit überprüfen.</p>
</blockquote>
<p>Das halte ich für irrelevant. Natürlich knallt man noch nicht megabytegroße Sachen auf den Stack. Stacküberlauf macht eben Programmabsturz. Damit hatte ich noch nie Probleme. Ich kann mir nicht vorstellen, daß jemand damit Probleme hat.</p>
</blockquote>
<p>Jemand hat spätestens Probleme damit, wenn der Stack manchmal überläuft und manchmal nicht, je nach Benutzereingabe (und das am besten schon beim Kunden <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>
<pre><code class="language-cpp">int foo(unsigned long n)
{
   int a = rand();
   if (n = 0)
     return;
   cout &lt;&lt; &quot;Das Problem gibts schon und niemand stoerts &quot; &lt;&lt; a &lt;&lt; '\n';
   foo(n - 1);
}

int main()
{
   unsigned long n;
   cin &lt;&lt; n;
   foo(n)
}
</code></pre>
<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="🙄"
    /></p>
</blockquote>
<p>Das ist der Grund, warum Rekursion eher vermieden werden sollte, wenn die Anzahl der Rekursionen eventuell sehr groß werden kann. Ja, das Problem gibt's schon, aber das es niemanden stört, würde ich so nicht unterschreiben (vor allem die, die drauf reinfallen). <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/1868092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1868092</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 12 Mar 2010 17:56:42 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Fri, 12 Mar 2010 18:14:04 GMT]]></title><description><![CDATA[<p>_matze schrieb:</p>
<blockquote>
<p>Blue-Tiger schrieb:</p>
<blockquote>
<p>_matze schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>rüdiger schrieb:</p>
<blockquote>
<p>Der Code den er dafür generiert, sollte das zur Laufzeit überprüfen.</p>
</blockquote>
<p>Das halte ich für irrelevant. Natürlich knallt man noch nicht megabytegroße Sachen auf den Stack. Stacküberlauf macht eben Programmabsturz. Damit hatte ich noch nie Probleme. Ich kann mir nicht vorstellen, daß jemand damit Probleme hat.</p>
</blockquote>
<p>Jemand hat spätestens Probleme damit, wenn der Stack manchmal überläuft und manchmal nicht, je nach Benutzereingabe (und das am besten schon beim Kunden <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>
<pre><code class="language-cpp">int foo(unsigned long n)
{
   int a = rand();
   if (n = 0)
     return;
   cout &lt;&lt; &quot;Das Problem gibts schon und niemand stoerts &quot; &lt;&lt; a &lt;&lt; '\n';
   foo(n - 1);
}

int main()
{
   unsigned long n;
   cin &lt;&lt; n;
   foo(n)
}
</code></pre>
<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="🙄"
    /></p>
</blockquote>
<p>Das ist der Grund, warum Rekursion eher vermieden werden sollte, <strong>wenn die Anzahl der Rekursionen eventuell sehr groß werden kann</strong>. Ja, das Problem gibt's schon, aber das es niemanden stört, würde ich so nicht unterschreiben (vor allem die, die drauf reinfallen). <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>Gib da mal 0 ein <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>Edit: Mal davon abgsehen das es gar nicht erst compileren sollte. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1868097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1868097</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Fri, 12 Mar 2010 18:14:04 GMT</pubDate></item><item><title><![CDATA[Reply to int a[variable]; ???! on Fri, 12 Mar 2010 18:29:45 GMT]]></title><description><![CDATA[<p>evilissimo schrieb:</p>
<blockquote>
<p>_matze schrieb:</p>
<blockquote>
<p>Blue-Tiger schrieb:</p>
<blockquote>
<p>_matze schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>rüdiger schrieb:</p>
<blockquote>
<p>Der Code den er dafür generiert, sollte das zur Laufzeit überprüfen.</p>
</blockquote>
<p>Das halte ich für irrelevant. Natürlich knallt man noch nicht megabytegroße Sachen auf den Stack. Stacküberlauf macht eben Programmabsturz. Damit hatte ich noch nie Probleme. Ich kann mir nicht vorstellen, daß jemand damit Probleme hat.</p>
</blockquote>
<p>Jemand hat spätestens Probleme damit, wenn der Stack manchmal überläuft und manchmal nicht, je nach Benutzereingabe (und das am besten schon beim Kunden <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>
<pre><code class="language-cpp">int foo(unsigned long n)
{
   int a = rand();
   if (n = 0)
     return;
   cout &lt;&lt; &quot;Das Problem gibts schon und niemand stoerts &quot; &lt;&lt; a &lt;&lt; '\n';
   foo(n - 1);
}

int main()
{
   unsigned long n;
   cin &lt;&lt; n;
   foo(n)
}
</code></pre>
<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="🙄"
    /></p>
</blockquote>
<p>Das ist der Grund, warum Rekursion eher vermieden werden sollte, <strong>wenn die Anzahl der Rekursionen eventuell sehr groß werden kann</strong>. Ja, das Problem gibt's schon, aber das es niemanden stört, würde ich so nicht unterschreiben (vor allem die, die drauf reinfallen). <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>Gib da mal 0 ein <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>Edit: Mal davon abgsehen das es gar nicht erst compileren sollte. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
</blockquote>
<p>Weshalb sollte es nicht kompilieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1868105</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1868105</guid><dc:creator><![CDATA[faulerSamyboy]]></dc:creator><pubDate>Fri, 12 Mar 2010 18:29:45 GMT</pubDate></item></channel></rss>