<?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[Speicher auf dem Heap reservieren]]></title><description><![CDATA[<p>Die Regel heißt doch, wenn eine größe einer Variable zur Laufzeit noch unklar ist, dann muss man sie auf dem Heap Speichern. Oder?<br />
Folgendes Beispiel:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class Prime
{
    public:
    explicit Prime();
    ~Prime();
    inline unsigned long NextPrime(unsigned long value);

    private:
    unsigned long m_PrimeNumber;
};

Prime::Prime()
:m_PrimeNumber(1)
{

}

Prime::~Prime()
{

}

unsigned long Prime::NextPrime(unsigned long value)
{
    unsigned long array[value];
    return value;
}

int main()
{
    Prime temp;
    unsigned long choice;
    cin &gt;&gt; choice;
    temp.NextPrime(choice);

    return 0;
}
</code></pre>
<p>Eigentlich müsste das doch einen Compiler Error geben? Was genau passiert heir im Speicher, weil die Größe von &quot;array[....]&quot; ist ja noch unklar?!<br />
Das verwirrt mich jetzt gard irgendwie. Müsste man da nicht &quot;unsigned long array*=new unsigned long [value]&quot; machen? Aber warum meldet sich der Compiler nicht?<br />
Kann mir jemand das mit dem Speicher nochmal erklären?</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194469/speicher-auf-dem-heap-reservieren</link><generator>RSS for Node</generator><lastBuildDate>Tue, 29 Sep 2026 14:07:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194469.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 07 Oct 2007 13:36:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Speicher auf dem Heap reservieren on Sun, 07 Oct 2007 13:36:59 GMT]]></title><description><![CDATA[<p>Die Regel heißt doch, wenn eine größe einer Variable zur Laufzeit noch unklar ist, dann muss man sie auf dem Heap Speichern. Oder?<br />
Folgendes Beispiel:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class Prime
{
    public:
    explicit Prime();
    ~Prime();
    inline unsigned long NextPrime(unsigned long value);

    private:
    unsigned long m_PrimeNumber;
};

Prime::Prime()
:m_PrimeNumber(1)
{

}

Prime::~Prime()
{

}

unsigned long Prime::NextPrime(unsigned long value)
{
    unsigned long array[value];
    return value;
}

int main()
{
    Prime temp;
    unsigned long choice;
    cin &gt;&gt; choice;
    temp.NextPrime(choice);

    return 0;
}
</code></pre>
<p>Eigentlich müsste das doch einen Compiler Error geben? Was genau passiert heir im Speicher, weil die Größe von &quot;array[....]&quot; ist ja noch unklar?!<br />
Das verwirrt mich jetzt gard irgendwie. Müsste man da nicht &quot;unsigned long array*=new unsigned long [value]&quot; machen? Aber warum meldet sich der Compiler nicht?<br />
Kann mir jemand das mit dem Speicher nochmal erklären?</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1379700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1379700</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Sun, 07 Oct 2007 13:36:59 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher auf dem Heap reservieren on Sun, 07 Oct 2007 14:02:43 GMT]]></title><description><![CDATA[<p>Folgende Fehler meldet der MSVC:</p>
<pre><code>1&gt;.\main.cpp(11) : error C2057: Konstanter Ausdruck erwartet
1&gt;.\main.cpp(11) : error C2466: Zuordnung eines Arrays der konstanten Größe 0 nicht möglich.
1&gt;.\main.cpp(11) : error C2133: 'array': Unbekannte Größe
</code></pre>
<p>Ich weiß, dass soetwas in C erlaubt ist, in C++ aber nicht. Und dein Code ist eindeutig C++.</p>
<p>Gruß<br />
Don06</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1379719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1379719</guid><dc:creator><![CDATA[Don06]]></dc:creator><pubDate>Sun, 07 Oct 2007 14:02:43 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher auf dem Heap reservieren on Sun, 07 Oct 2007 14:18:16 GMT]]></title><description><![CDATA[<p>Mh, ich kann das aber ohne Compilerfehler compilieren. (MinGW)<br />
Aber mich wundert das jetzt auch irgendwie...mh?</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1379730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1379730</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Sun, 07 Oct 2007 14:18:16 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher auf dem Heap reservieren on Sun, 07 Oct 2007 14:37:33 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>nach ISO C++ tut er das auch:</p>
<blockquote>
<p>g++ blah.cpp -o blah -pedantic<br />
blah.cpp: In member function 'long unsigned int Prime::NextPrime(long unsigned int)':<br />
blah.cpp:28: error: ISO C++ forbids variable-size array 'array'</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1379748</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1379748</guid><dc:creator><![CDATA[CarstenJ]]></dc:creator><pubDate>Sun, 07 Oct 2007 14:37:33 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher auf dem Heap reservieren on Sun, 07 Oct 2007 14:39:04 GMT]]></title><description><![CDATA[<p>Der GCC/MinWG unterstützt Variable-Sized-Arrays (zumindest in der Vesion 4.2.1 die ich bei mir hab) obwohl sie nicht im ISO-Standard enthalten sind. Wenn du dem Compiler das Flag -pedantic mitgibst bekommst du einen Fehler &quot;ISO-C++ forbids variable-sized arrays&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1379749</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1379749</guid><dc:creator><![CDATA[OhneName]]></dc:creator><pubDate>Sun, 07 Oct 2007 14:39:04 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher auf dem Heap reservieren on Sun, 07 Oct 2007 14:43:29 GMT]]></title><description><![CDATA[<p>Otimiert der MinGW Compiler den Code dann einfach und hauts auf n Heap? Kann ich diese Falg irgendwie dauerhaft einschalten (Code::blocks), geht das irgendwie, das wär doch besser wenn das an wäre oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1379752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1379752</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Sun, 07 Oct 2007 14:43:29 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher auf dem Heap reservieren on Sun, 07 Oct 2007 15:18:52 GMT]]></title><description><![CDATA[<p>Stromberg schrieb:</p>
<blockquote>
<p>Otimiert der MinGW Compiler den Code dann einfach und hauts auf n Heap? Kann ich diese Falg irgendwie dauerhaft einschalten (Code::blocks), geht das irgendwie, das wär doch besser wenn das an wäre oder?</p>
</blockquote>
<p>Settings -&gt; Compiler and debugger -&gt; Compiler Settings -&gt; das Kästchen für -pedantic aktivieren (und am besten auch noch -Wall)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1379777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1379777</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Sun, 07 Oct 2007 15:18:52 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher auf dem Heap reservieren on Sun, 07 Oct 2007 15:30:28 GMT]]></title><description><![CDATA[<p>Ahhh...Dankeschön, jetzt rührt sich was wenn ich es nicht auf den Heap haue.</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1379784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1379784</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Sun, 07 Oct 2007 15:30:28 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher auf dem Heap reservieren on Sun, 07 Oct 2007 15:32:57 GMT]]></title><description><![CDATA[<p>Stromberg schrieb:</p>
<blockquote>
<p>Otimiert der MinGW Compiler den Code dann einfach und hauts auf n Heap?</p>
</blockquote>
<p>Nein, auf dem Stack. Technisch gesehen ist das garnichtmal schwierig, nur eben in C++ nicht vorgesehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1379787</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1379787</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Sun, 07 Oct 2007 15:32:57 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher auf dem Heap reservieren on Sun, 07 Oct 2007 17:42:59 GMT]]></title><description><![CDATA[<p>nicht alles was c++ verbietet oder nicht kann hat seine ursache darin, dass es nicht ginge. häufig hat es seine ursache schlicht darin, dass die sprache sowas nicht vorsieht <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>deshalb können manche compiler auch mehr, als der standard vorsieht. ist auch nicht falsch, funktionalität seines compilers auszunutzen und am standard vorbeizucoden. man muss sich dann aber im klaren sein, dass man nicht mehr nach iso standard entwickelt und der gesamte code möglicherweise überarbeitet werden muss, wenn auch nur auf eine neue compilerversion umgestiegen wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1379913</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1379913</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Sun, 07 Oct 2007 17:42:59 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher auf dem Heap reservieren on Sun, 07 Oct 2007 18:04:49 GMT]]></title><description><![CDATA[<p>Was liefert denn sizeof() angewendet auf so ein &quot;dynamisches&quot; Array. Im Standard steht ja, dass sizeof() beim Kompilieren berechnet wird, oder soetwa in der Art. Liefert es dann nur die Größe eines Zeigers oder wurde auch die Funktionalität von sizeof() geändert?<br />
Hab gerade nicht den GCC bei Hand.</p>
<p>Gruß<br />
Don06</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1379944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1379944</guid><dc:creator><![CDATA[Don06]]></dc:creator><pubDate>Sun, 07 Oct 2007 18:04:49 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher auf dem Heap reservieren on Sun, 07 Oct 2007 18:12:50 GMT]]></title><description><![CDATA[<p>Don06 schrieb:</p>
<blockquote>
<p>Was liefert denn sizeof() angewendet auf so ein &quot;dynamisches&quot; Array.</p>
</blockquote>
<p>sehr wahrscheinlich dasselbe wie sizeof(int) ^^</p>
<p>ich nehms zurück. das ding liegt tatsächlich aufm stack.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1379954</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1379954</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Sun, 07 Oct 2007 18:12:50 GMT</pubDate></item></channel></rss>