<?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[new operator unterschied]]></title><description><![CDATA[<p>Ich habe ein Buch vor mir und der Titel des Kapitels lautet nun</p>
<p>Arrays im Heap (dynamisches Array)</p>
<p>Hier schreibt man das man somit zur Laufzeit Speicher reservieren kann. Dieser soll dann vom Heap bezogen werden.</p>
<pre><code class="language-cpp">int n;
cin &gt;&gt; n;
int *ptr = new int[n];
</code></pre>
<p>was ist nun der Unterschied zu klassischen Variablen?</p>
<pre><code class="language-cpp">int n;
cin &gt;&gt; n;
int array[n];
</code></pre>
<ol>
<li>Wird im zweiten Code der Speicher nicht im Heap reserviert?</li>
<li>Die Programme werden doch in beiden fällen abgebrochen wenn die Reservierung fehlschlägt?</li>
<li>wo ist der Unterschied des ersten codes zu &quot;C&quot; malloc außer das man exceptions nutzen &quot;könnte&quot;?</li>
</ol>
<p>Sorry aber ich bin c++ Anfänger <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/263327/new-operator-unterschied</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 20:30:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/263327.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 18 Mar 2010 22:17:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to new operator unterschied on Thu, 18 Mar 2010 22:17:19 GMT]]></title><description><![CDATA[<p>Ich habe ein Buch vor mir und der Titel des Kapitels lautet nun</p>
<p>Arrays im Heap (dynamisches Array)</p>
<p>Hier schreibt man das man somit zur Laufzeit Speicher reservieren kann. Dieser soll dann vom Heap bezogen werden.</p>
<pre><code class="language-cpp">int n;
cin &gt;&gt; n;
int *ptr = new int[n];
</code></pre>
<p>was ist nun der Unterschied zu klassischen Variablen?</p>
<pre><code class="language-cpp">int n;
cin &gt;&gt; n;
int array[n];
</code></pre>
<ol>
<li>Wird im zweiten Code der Speicher nicht im Heap reserviert?</li>
<li>Die Programme werden doch in beiden fällen abgebrochen wenn die Reservierung fehlschlägt?</li>
<li>wo ist der Unterschied des ersten codes zu &quot;C&quot; malloc außer das man exceptions nutzen &quot;könnte&quot;?</li>
</ol>
<p>Sorry aber ich bin c++ Anfänger <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871115</guid><dc:creator><![CDATA[darkfate]]></dc:creator><pubDate>Thu, 18 Mar 2010 22:17:19 GMT</pubDate></item><item><title><![CDATA[Reply to new operator unterschied on Thu, 18 Mar 2010 22:29:21 GMT]]></title><description><![CDATA[<blockquote>
<ol>
<li>Wird im zweiten Code der Speicher nicht im Heap reserviert?</li>
</ol>
</blockquote>
<p>Der zweite Code ist kein legales C++, da die Größe eines Arrays zur Compilezeit bekannt sein muss.<br />
Damit erledigt sich auch 2).</p>
<blockquote>
<ol start="3">
<li>wo ist der Unterschied des ersten codes zu &quot;C&quot; malloc außer das man exceptions nutzen &quot;könnte&quot;?</li>
</ol>
</blockquote>
<p>Genaugenommen allokiert <em>new</em> Speicher aus dem <em>Free Store</em> und <em>malloc</em> aus dem <em>Heap</em>. Häufig gibt es keinen Unterschied zwischen den beiden, da <em>new</em> wohl häufig vom Compiler mit <em>malloc</em> implementiert wird (zumindest laut Sutter - Exceptional C++).<br />
Die beiden Varianten existieren meines Wissens nur aus Kompatibilitätsgründen zu C.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871120</guid><dc:creator><![CDATA[Bruder Lustig]]></dc:creator><pubDate>Thu, 18 Mar 2010 22:29:21 GMT</pubDate></item><item><title><![CDATA[Reply to new operator unterschied on Fri, 19 Mar 2010 08:54:13 GMT]]></title><description><![CDATA[<p>darkfate schrieb:</p>
<blockquote>
<ol>
<li>Wird im zweiten Code der Speicher nicht im Heap reserviert?</li>
</ol>
</blockquote>
<p>Nein, wenn n im zweiten Code eine Compilezeitkonstante wäre (damit daraus gültiges C++ wird), würde der Speicher nicht wie bei new auf dem free store reserviert sondern auf dem Stack.</p>
<blockquote>
<ol start="2">
<li>Die Programme werden doch in beiden fällen abgebrochen wenn die Reservierung fehlschlägt?</li>
</ol>
</blockquote>
<p>Wenn für new kein freier Speicher zur Verfügung steht, fliegt eine Exception, die man fangen kann um darauf zu reagieren. Wenn der Stack überläuft ist Feierabend.</p>
<blockquote>
<ol start="3">
<li>wo ist der Unterschied des ersten codes zu &quot;C&quot; malloc außer das man exceptions nutzen &quot;könnte&quot;?</li>
</ol>
</blockquote>
<p>malloc ruft keine Konstruktoren auf, außerdem kann man den <code>operator new</code> überladen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871167</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 19 Mar 2010 08:54:13 GMT</pubDate></item><item><title><![CDATA[Reply to new operator unterschied on Fri, 19 Mar 2010 08:50:09 GMT]]></title><description><![CDATA[<p>Man kann sich überlegen, aus Performancegründen malloc und new unterschiedlich zu implementieren, weil die Hauptlast bei new auf sehr vielen sehr kleinen Speicheranorderungen liegt und bei malloc auf recht wenigen großen. Ein Nebeneffekt des Polymorphie-Tricks.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871197</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 19 Mar 2010 08:50:09 GMT</pubDate></item></channel></rss>