<?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[Malloc oder C++-Standard]]></title><description><![CDATA[<p>Alóha,<br />
ich muss für ein Zeiger vom Datentyp 'unsigned char*' neuen Speicher<br />
reservieren. Frage ist jetzt ob über Malloc oder einfach über new, die<br />
Frage ist jetzt, ob es genau die selbe Auswirkung hat. Sprich:<br />
(Malloc)</p>
<pre><code class="language-cpp">bitmapImage = (unsigned char*)malloc(bitmapInfoHeader-&gt;biSizeImage);
</code></pre>
<p>..., und:</p>
<pre><code class="language-cpp">bitmap_Image=new unsigned char[o_Bitmap.InfoHeader.biSizeImage];
</code></pre>
<p>(Ist im Übrigen aus meinem Bitmap-Decoder)<br />
Wie schon gefragt, haben die beiden Zeilen die gleiche Auswirkung?<br />
Danke im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/224943/malloc-oder-c-standard</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 21:24:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/224943.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 17 Oct 2008 08:52:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 08:57:48 GMT]]></title><description><![CDATA[<p>Alóha,<br />
ich muss für ein Zeiger vom Datentyp 'unsigned char*' neuen Speicher<br />
reservieren. Frage ist jetzt ob über Malloc oder einfach über new, die<br />
Frage ist jetzt, ob es genau die selbe Auswirkung hat. Sprich:<br />
(Malloc)</p>
<pre><code class="language-cpp">bitmapImage = (unsigned char*)malloc(bitmapInfoHeader-&gt;biSizeImage);
</code></pre>
<p>..., und:</p>
<pre><code class="language-cpp">bitmap_Image=new unsigned char[o_Bitmap.InfoHeader.biSizeImage];
</code></pre>
<p>(Ist im Übrigen aus meinem Bitmap-Decoder)<br />
Wie schon gefragt, haben die beiden Zeilen die gleiche Auswirkung?<br />
Danke im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600279</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Fri, 17 Oct 2008 08:57:48 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 08:56:40 GMT]]></title><description><![CDATA[<p>So:</p>
<pre><code class="language-cpp">#include &lt;vector&gt;
//...
std::vector&lt;unsigned char&gt; bitmapImage(o_Bitmap.InfoHeader.biSizeImage);
</code></pre>
<p>Zur Frage:<br />
Ja, in diesem Fall sind die Auswirkungen gleich. Für Klassen gilt das allerdings nicht, da bei malloc/calloc der Konstruktor der Klassen nicht ausgeführt wird, und somit Klassen nicht korrekt erzeugt werden.<br />
Daher in C++ immer mit new arbeiten, wenn man denn mal unbedingt damit arbeiten muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600280</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 17 Oct 2008 08:56:40 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 09:00:31 GMT]]></title><description><![CDATA[<p>der einzige unterschied, ist die art und weise auf die der speicher wieder frei gegeben werden muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600285</guid><dc:creator><![CDATA[vlad_tepesch]]></dc:creator><pubDate>Fri, 17 Oct 2008 09:00:31 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 09:02:30 GMT]]></title><description><![CDATA[<p>vlad_tepesch schrieb:</p>
<blockquote>
<p>der einzige unterschied, ist die art und weise auf die der speicher wieder frei gegeben werden muss.</p>
</blockquote>
<p>Falsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600287</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600287</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 17 Oct 2008 09:02:30 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 09:03:02 GMT]]></title><description><![CDATA[<p>vlad_tepesch schrieb:</p>
<blockquote>
<p>der einzige unterschied, ist die art und weise auf die der speicher wieder frei gegeben werden muss.</p>
</blockquote>
<p>Aber nur in einen so einfachen Fall wie hier (Tachyon hat ja schon geschrieben warum man in C++ eigentlich new/delete verwenden sollte).</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600288</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600288</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Fri, 17 Oct 2008 09:03:02 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 11:01:06 GMT]]></title><description><![CDATA[<p>Auch, wenn ich bestimmt gleich geschlagen werden, aber ich verwende in bestimmten Fällen gerne [x]alloc, da realloc so praktisch ist und es bei der new/delete-Methode eben kein Äquivalent dafür gibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600330</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 17 Oct 2008 11:01:06 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 11:02:59 GMT]]></title><description><![CDATA[<p>_matze schrieb:</p>
<blockquote>
<p>Auch, wenn ich bestimmt gleich geschlagen werden, aber ich verwende in bestimmten Fällen gerne [x]alloc, da realloc so praktisch ist und es bei der new/delete-Methode eben kein Äquivalent dafür gibt.</p>
</blockquote>
<p>Nenn mal ein Beispiel, wo Du es <strong>sinnvoll</strong> einsetzt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600333</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 17 Oct 2008 11:02:59 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 11:34:51 GMT]]></title><description><![CDATA[<p>Na ja, jedesmal, wenn du ein dynamisches Array resizen willst (und es sich nicht gerade um Klasseninstanzen handelt), ist realloc sehr praktisch, da man halt nicht umkopieren muss wie bei new. Natürlich sind Container-Klassen aus der STL oder MFC die bessere Alternative, aber wenn man sich in einem solchen Fall zwischen new/delete und malloc/calloc/realloc entscheiden soll, dann würde ich definitiv letzteres wählen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600349</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600349</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 17 Oct 2008 11:34:51 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 11:36:38 GMT]]></title><description><![CDATA[<p>_matze schrieb:</p>
<blockquote>
<p>Na ja, jedesmal, wenn du ein dynamisches Array resizen willst (und es sich nicht gerade um Klasseninstanzen handelt), ist realloc sehr praktisch, da man halt nicht umkopieren muss wie bei new. Natürlich sind Container-Klassen aus der STL oder MFC die bessere Alternative, aber wenn man sich in einem solchen Fall zwischen new/delete und malloc/calloc/realloc entscheiden soll, dann würde ich definitiv letzteres wählen.</p>
</blockquote>
<p>Naja, die Frage ist nun: Wieso sollte man ein solches dynamisches Arrays benutzen, wenn man STL Container hat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600350</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600350</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 17 Oct 2008 11:36:38 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 11:47:56 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>_matze schrieb:</p>
<blockquote>
<p>Na ja, jedesmal, wenn du ein dynamisches Array resizen willst (und es sich nicht gerade um Klasseninstanzen handelt), ist realloc sehr praktisch, da man halt nicht umkopieren muss wie bei new. Natürlich sind Container-Klassen aus der STL oder MFC die bessere Alternative, aber wenn man sich in einem solchen Fall zwischen new/delete und malloc/calloc/realloc entscheiden soll, dann würde ich definitiv letzteres wählen.</p>
</blockquote>
<p>Naja, die Frage ist nun: Wieso sollte man ein solches dynamisches Arrays benutzen, wenn man STL Container hat?</p>
</blockquote>
<p>Mir ist schon klar, worauf du hinaus willst, und du hast im Grunde ja auch Recht. Ich muss aber auch viel C programmieren und bin an realloc gewöhnt. Da mach ich's halt auch manchmal in C++. Und eines sollte man nicht vergessen: realloc mindert ja nicht automatisch die Qualität/Stabilität eines Programms! Wer damit umzugehen weiß, schreibt ähnlich stabilen Code wie mit STL-Containern. Worin wir aber übereinstimmen, ist vermutlich, dass man C**++**-Anfängern am besten gar nicht von realloc erzählen sollte...</p>
<p>P.S.: Ich habe doch gesagt, dass ich geschlagen werde... <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/1600356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600356</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 17 Oct 2008 11:47:56 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 11:52:01 GMT]]></title><description><![CDATA[<p>_matze schrieb:</p>
<blockquote>
<p>realloc sehr praktisch, da man halt nicht umkopieren muss wie bei new.</p>
</blockquote>
<p>ob umkopiert werden muss oder nicht, liegt (genauso wie bei std::vector) nicht in deiner hand. du musst es nur nicht explizit machen.</p>
<blockquote>
<p>aber wenn man sich in einem solchen Fall zwischen new/delete und malloc/calloc/realloc entscheiden soll, dann würde ich definitiv letzteres wählen.</p>
</blockquote>
<p>ich hingegen würde weiterhin new benutzen, und mir ein funktionierendes renew inkl. kopieren selber schreiben. aber nur wenn mich jemand mit waffengewalt von std::vector fernhält.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600361</guid><dc:creator><![CDATA[copynator]]></dc:creator><pubDate>Fri, 17 Oct 2008 11:52:01 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 11:56:11 GMT]]></title><description><![CDATA[<p>copynator schrieb:</p>
<blockquote>
<p>ob umkopiert werden muss oder nicht, liegt (genauso wie bei std::vector) nicht in deiner hand. du musst es nur nicht explizit machen.</p>
</blockquote>
<p>Richtig, so meinte ich das auch!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600364</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 17 Oct 2008 11:56:11 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 11:57:06 GMT]]></title><description><![CDATA[<p>copynator schrieb:</p>
<blockquote>
<p>ich hingegen würde weiterhin new benutzen, und mir ein funktionierendes renew inkl. kopieren selber schreiben.</p>
</blockquote>
<p>Würde mich mal interessieren, wie du das machst, ohne intern auf die C-Funktionen zuzugreifen. <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/1600365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600365</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 17 Oct 2008 11:57:06 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 11:58:18 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>copynator schrieb:</p>
<blockquote>
<p>ich hingegen würde weiterhin new benutzen, und mir ein funktionierendes renew inkl. kopieren selber schreiben.</p>
</blockquote>
<p>Würde mich mal interessieren, wie du das machst, ohne intern auf die C-Funktionen zuzugreifen. <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><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/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600366</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600366</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 17 Oct 2008 11:58:18 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 12:03:40 GMT]]></title><description><![CDATA[<p>ohne groß drüber nachzudenken:</p>
<pre><code class="language-cpp">T* renew(oldmem, oldcount, newcount)
{
    newmem = new T[newcount];
    std::copy(...)
    delete [] oldmem;
    return newmem;
}
</code></pre>
<p>geht bestimmt noch schlauer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600370</guid><dc:creator><![CDATA[copynator]]></dc:creator><pubDate>Fri, 17 Oct 2008 12:03:40 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 12:03:52 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>copynator schrieb:</p>
<blockquote>
<p>ich hingegen würde weiterhin new benutzen, und mir ein funktionierendes renew inkl. kopieren selber schreiben.</p>
</blockquote>
<p>Würde mich mal interessieren, wie du das machst, ohne intern auf die C-Funktionen zuzugreifen. <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>Wer sagt, das <code>new</code> mit den C-Funktionen arbeiten muss? Im Standard steht, das es unspezifiziert ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600371</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 17 Oct 2008 12:03:52 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 12:05:45 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>Nexus schrieb:</p>
<blockquote>
<p>copynator schrieb:</p>
<blockquote>
<p>ich hingegen würde weiterhin new benutzen, und mir ein funktionierendes renew inkl. kopieren selber schreiben.</p>
</blockquote>
<p>Würde mich mal interessieren, wie du das machst, ohne intern auf die C-Funktionen zuzugreifen. <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>Wer sagt, das <code>new</code> mit den C-Funktionen arbeiten muss? Im Standard steht, das es unspezifiziert ist.</p>
</blockquote>
<p>Richtig, aber soweit ich weiß, machen es die meisten Implementierungen (z.B. MS) so...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600374</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 17 Oct 2008 12:05:45 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 12:08:17 GMT]]></title><description><![CDATA[<p>_matze schrieb:</p>
<blockquote>
<p>[...]</p>
</blockquote>
<p>Jo, aber es geht auch ohne. Oben wurde es als Fakt dargestellt, dass new intern mit malloc arbeitet. Dem ist aber nicht zwangsläufig so.<br />
Juhu, ich liebe diese Haarspaltereien, auch wenn ich bei sowas manchmal deneben liege und ordentlich eins auf den Deckel bekomme. <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/1600379</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600379</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 17 Oct 2008 12:08:17 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 12:10:52 GMT]]></title><description><![CDATA[<p>_matze schrieb:</p>
<blockquote>
<p>Wer damit umzugehen weiß, schreibt ähnlich stabilen Code wie mit STL-Containern.</p>
</blockquote>
<p>Hunderprozentige Zustimmung!</p>
<p>_matze schrieb:</p>
<blockquote>
<p>Worin wir aber übereinstimmen, ist vermutlich, dass man C**++**-Anfängern am besten gar nicht von realloc erzählen sollte...</p>
</blockquote>
<p>Seh ich anders: Die Anfänger heutzutage die sehen nur die fertigen Container... Aber was wirklich dahinter steckt weiß kaum noch einer...<br />
Zauberkiste STL-Container <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>
<p>Wenns nach mir ginge müssten alle mit ANSI-C anfangen <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/1600380</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600380</guid><dc:creator><![CDATA[it0101@loggedoff]]></dc:creator><pubDate>Fri, 17 Oct 2008 12:10:52 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 12:11:31 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>_matze schrieb:</p>
<blockquote>
<p>[...]</p>
</blockquote>
<p>Jo, aber es geht auch ohne. Oben wurde es als Fakt dargestellt, dass new intern mit malloc arbeitet. Dem ist aber nicht zwangsläufig so.<br />
Juhu, ich liebe diese Haarspaltereien, auch wenn ich bei sowas manchmal deneben liege und ordentlich eins auf den Deckel bekomme. <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><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="😃"
    /> Ok, lustige Diskussion, aber ich verabschiede mich jetzt mal. Ich lese lieber solch vielfach gespaltene Haare, als dass ich mich daran allzu eifrig beteilige... Ich hab nämlich schon ein wenig auf den Deckel bekommen! <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/1600382</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600382</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 17 Oct 2008 12:11:31 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 12:14:32 GMT]]></title><description><![CDATA[<p>it0101@loggedoff schrieb:</p>
<blockquote>
<p>_matze schrieb:</p>
<blockquote>
<p>Wer damit umzugehen weiß, schreibt ähnlich stabilen Code wie mit STL-Containern.</p>
</blockquote>
<p>Hunderprozentige Zustimmung!</p>
<p>_matze schrieb:</p>
<blockquote>
<p>Worin wir aber übereinstimmen, ist vermutlich, dass man C**++**-Anfängern am besten gar nicht von realloc erzählen sollte...</p>
</blockquote>
<p>Seh ich anders: Die Anfänger heutzutage die sehen nur die fertigen Container... Aber was wirklich dahinter steckt weiß kaum noch einer...<br />
Zauberkiste STL-Container <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>
<p>Wenns nach mir ginge müssten alle mit ANSI-C anfangen <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>Jap super Idee. Wenn man dann mal nach einer Zeit mit C++ anfängt wundert man sich warum das nicht mehr so funktioniert wie vorher und man erst nach Jahren lernt, dass es bereits für das C-Gefrickel fertige, sichere Alternativen gibt. Smartpointer z.B.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600385</guid><dc:creator><![CDATA[Genau]]></dc:creator><pubDate>Fri, 17 Oct 2008 12:14:32 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 12:15:56 GMT]]></title><description><![CDATA[<p>copynator schrieb:</p>
<blockquote>
<p>ohne groß drüber nachzudenken:<br />
[...]<br />
geht bestimmt noch schlauer.</p>
</blockquote>
<p>Aber da hat man wieder den gleichen Performancenachteil gegenüber <code>realloc()</code> , da das ganze Array zerstört und neu aufgebaut wird.</p>
<p>Tachyon schrieb:</p>
<blockquote>
<p>Oben wurde es als Fakt dargestellt, dass new intern mit malloc arbeitet.</p>
</blockquote>
<p>Wenn wir gerade bei Haarspaltereien sind: So etwas habe ich niemals behauptet (meinst du jemand anderen?). Ich kann mir schon vorstellen, dass <code>new</code> und <code>delete</code> intern anders implementiert sind, zumal ja <code>malloc()</code> , <code>realloc()</code> und <code>free()</code> intern auch andere Routinen - womöglich vom Betriebssystem - aufrufen. Ich selber kenne jedoch keine Alternativen, deshalb würde es mich ja wundern, wie.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600386</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 17 Oct 2008 12:15:56 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 12:17:57 GMT]]></title><description><![CDATA[<p>it0101@loggedoff schrieb:</p>
<blockquote>
<p>[...]Wenns nach mir ginge müssten alle mit ANSI-C anfangen <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>Und das ist völliger Blödsinn. Bei den meisten Programmierern hapert es schon am Design. Wenn sich solche Programmierer dann noch mit den Problemchen der Programmiersprache rumschlagen müssen, kommt es zum Eklat.<br />
Es ist viel wichtiger, ordentlich abstrahieren zu können als zu wissen, wo jedes einzelne Bit in der CPU landet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600387</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600387</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 17 Oct 2008 12:17:57 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 12:27:16 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Aber da hat man wieder den gleichen Performancenachteil gegenüber <code>realloc()</code> , da das ganze Array zerstört und neu aufgebaut wird.</p>
</blockquote>
<p>Anders geht es aber nicht, wenn es eine Anforderung ist, dass der Speicherblock zusammenhängt. Dafür arbeitet die Variante aber korrekt mit nichttrivialen Objekten.</p>
<p>Nexus schrieb:</p>
<blockquote>
<p>So etwas habe ich niemals behauptet (meinst du jemand anderen?).</p>
</blockquote>
<p>Naja, Du hast es so dargestellt, als dass es ohne C-Funktionen nicht geht. <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>Wahrscheinlich wird in vielen Fällen wirklich einfach nur malloc aufgerufen, aber es gibt, wie Du ja sagtest, auch die Möglichkeit, direkt über das OS zu gehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600391</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 17 Oct 2008 12:27:16 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 12:26:49 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>copynator schrieb:</p>
<blockquote>
<p>ohne groß drüber nachzudenken:<br />
[...]<br />
geht bestimmt noch schlauer.</p>
</blockquote>
<p>Aber da hat man wieder den gleichen Performancenachteil gegenüber <code>realloc()</code> , da das ganze Array zerstört und neu aufgebaut wird.</p>
</blockquote>
<p>ich kann dir nicht ganz folgen. es hat doch niemand was von performance gesagt? es geht darum, dass es <em>funktioniert</em>, nicht dass es schnell oder schön wäre.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600394</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600394</guid><dc:creator><![CDATA[copynator]]></dc:creator><pubDate>Fri, 17 Oct 2008 12:26:49 GMT</pubDate></item><item><title><![CDATA[Reply to Malloc oder C++-Standard on Fri, 17 Oct 2008 12:30:27 GMT]]></title><description><![CDATA[<p>copynator schrieb:</p>
<blockquote>
<p>es hat doch niemand was von performance gesagt? es geht darum, dass es <em>funktioniert</em>, nicht dass es schnell oder schön wäre.</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /></p>
<p>_matze schrieb:</p>
<blockquote>
<p>Na ja, jedesmal, wenn du ein dynamisches Array resizen willst (und es sich nicht gerade um Klasseninstanzen handelt), ist realloc sehr praktisch, da man halt nicht umkopieren muss wie bei new.</p>
</blockquote>
<p>Ich dachte, mit &quot;umkopieren&quot; werde schon auf die Performance angespielt... Ist zwar hier nicht ganz eindeutig, aber das (hier negativ ausgedrückte) Kopieren wird oft mit der Schwere der Operation assoziiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1600396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1600396</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 17 Oct 2008 12:30:27 GMT</pubDate></item></channel></rss>