<?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[Ruft new[] new auf?]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe mir den globalen operator new(size_t) überladen. Logischerweise wird der aufgerufen wenn ich schreibe:</p>
<pre><code class="language-cpp">int* i = new int;
</code></pre>
<p>Ich habe jedoch NICHT die Array Version (operator new[](size_t size)) überladen. Also ging ich davon aus, dass</p>
<pre><code class="language-cpp">int* a = new int[5];
</code></pre>
<p>nicht in meinen Code springt, sondern operator new[] meines Compilerherstellers benutzt. Zu meinem Erstaunen musste ich feststellen, dass mein operator new(size_t) aufgerufen wird! (mit size = 20).</p>
<p>Ist das normal? Ruft operator new[] immer operator new auf? Wenn ja: Muss ich dann überhaupt noch extra operator new[] überschreiben, wenn ich operator new schon überschrieben habe?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/287812/ruft-new-new-auf</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 06:57:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/287812.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 04 Jun 2011 16:21:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ruft new[] new auf? on Sat, 04 Jun 2011 16:21:16 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe mir den globalen operator new(size_t) überladen. Logischerweise wird der aufgerufen wenn ich schreibe:</p>
<pre><code class="language-cpp">int* i = new int;
</code></pre>
<p>Ich habe jedoch NICHT die Array Version (operator new[](size_t size)) überladen. Also ging ich davon aus, dass</p>
<pre><code class="language-cpp">int* a = new int[5];
</code></pre>
<p>nicht in meinen Code springt, sondern operator new[] meines Compilerherstellers benutzt. Zu meinem Erstaunen musste ich feststellen, dass mein operator new(size_t) aufgerufen wird! (mit size = 20).</p>
<p>Ist das normal? Ruft operator new[] immer operator new auf? Wenn ja: Muss ich dann überhaupt noch extra operator new[] überschreiben, wenn ich operator new schon überschrieben habe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2073328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2073328</guid><dc:creator><![CDATA[AllohaEh]]></dc:creator><pubDate>Sat, 04 Jun 2011 16:21:16 GMT</pubDate></item><item><title><![CDATA[Reply to Ruft new[] new auf? on Sat, 04 Jun 2011 16:26:01 GMT]]></title><description><![CDATA[<p>AllohaEh schrieb:</p>
<blockquote>
<p>Ist das normal? Ruft operator new[] immer operator new auf? Wenn ja: Muss ich dann überhaupt noch extra operator new[] überschreiben, wenn ich operator new schon überschrieben habe?</p>
</blockquote>
<p>Nein - ob die Operatoren aufeinander aufbauen, ist im Standard afaik nicht festgelegt. Das heißt, es ist durchaus erlaubt, daß der <code>operator new[]</code> seine Daten von <code>operator new</code> holt - genausogut könnte jemand es genau umgekehrt machen oder beide Operatoren verwenden hinter den Kulissen eine gemeinsame alloc()-Funktion.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2073331</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2073331</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 04 Jun 2011 16:26:01 GMT</pubDate></item><item><title><![CDATA[Reply to Ruft new[] new auf? on Sat, 04 Jun 2011 16:32:54 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>AllohaEh schrieb:</p>
<blockquote>
<p>Ist das normal? Ruft operator new[] immer operator new auf? Wenn ja: Muss ich dann überhaupt noch extra operator new[] überschreiben, wenn ich operator new schon überschrieben habe?</p>
</blockquote>
<p>Nein - ob die Operatoren aufeinander aufbauen, ist im Standard afaik nicht festgelegt. Das heißt, es ist durchaus erlaubt, daß der <code>operator new[]</code> seine Daten von <code>operator new</code> holt - genausogut könnte jemand es genau umgekehrt machen oder beide Operatoren verwenden hinter den Kulissen eine gemeinsame alloc()-Funktion.</p>
</blockquote>
<p>Also besser operator new UND operator new[] überschreiben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2073334</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2073334</guid><dc:creator><![CDATA[AllohaEh]]></dc:creator><pubDate>Sat, 04 Jun 2011 16:32:54 GMT</pubDate></item><item><title><![CDATA[Reply to Ruft new[] new auf? on Sat, 04 Jun 2011 16:34:48 GMT]]></title><description><![CDATA[<p>AllohaEh schrieb:</p>
<blockquote>
<p>Also besser operator new UND operator new[] überschreiben?</p>
</blockquote>
<p>Der Standard garantiert dir den Aufruf von <code>new</code> bei einem Aufruf von <code>new[]</code> nicht, also ja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2073335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2073335</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sat, 04 Jun 2011 16:34:48 GMT</pubDate></item></channel></rss>