<?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[memcpy, memmove, calloc, memset in C++?]]></title><description><![CDATA[<p>Grüsse zusammen,</p>
<p>Der eine Thread in diesem Forum artet mal wieder in einem Flamewar aus, ob man C in C++ brauchen darf oder nicht. Da ich aber an diesem Flamewar nicht interessiert bin, sondern an einer ernst gemeinter Frage, habe ich mir nun erlaubt, einen neuen Thread aufzumachen.</p>
<p>Ich programmiere nicht viel mit &quot;reinem&quot; C++ oder C. Ich benutze oft die MFC oder manchmal die WinAPI. Trotzdem kam es schon mal vor, dass es anderst war <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>Man sagt aber eben meistens, dass man in C++ kein C verwenden sollte. Aber wie mache ich in C++ z.b. ein memset? Oder ein calloc? Oder ein realloc? Das sind doch, soweit ich informiert bin, C-Funktionen.</p>
<p>Bitte kein Flamewar hier drin, möchte nur meine Fragen beantwortet haben.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/176787/memcpy-memmove-calloc-memset-in-c</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 15:29:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/176787.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 24 Mar 2007 22:06:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sat, 24 Mar 2007 22:06:37 GMT]]></title><description><![CDATA[<p>Grüsse zusammen,</p>
<p>Der eine Thread in diesem Forum artet mal wieder in einem Flamewar aus, ob man C in C++ brauchen darf oder nicht. Da ich aber an diesem Flamewar nicht interessiert bin, sondern an einer ernst gemeinter Frage, habe ich mir nun erlaubt, einen neuen Thread aufzumachen.</p>
<p>Ich programmiere nicht viel mit &quot;reinem&quot; C++ oder C. Ich benutze oft die MFC oder manchmal die WinAPI. Trotzdem kam es schon mal vor, dass es anderst war <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>Man sagt aber eben meistens, dass man in C++ kein C verwenden sollte. Aber wie mache ich in C++ z.b. ein memset? Oder ein calloc? Oder ein realloc? Das sind doch, soweit ich informiert bin, C-Funktionen.</p>
<p>Bitte kein Flamewar hier drin, möchte nur meine Fragen beantwortet haben.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251932</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251932</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 24 Mar 2007 22:06:37 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sat, 24 Mar 2007 22:25:01 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>wie im vorherigen Thread erklärt wurde, ist es bis zu einem bestimmten Umfang okay, Funktionen aus der C Std. Bibliothek herzunehmen, alleine schon deswegen, weil es in C++ oft keine äquivalente Funktionen zu C gibt.</p>
<p>memset - Hier gibt es keine Äquivalente, also nimmst du diese.<br />
calloc - In C++ gibt es hierfür den Operator <strong>new</strong><br />
realloc - Dies kann man auch mit Std. C++ lösen, wobei diese Funktion sicherlich die einfachere Variante ist.</p>
<p>Damit möchte ich letztendlich sagen, dass es in der Tat manchmal nötig ist, C Funktionen zu nehmen. Aber es ist nicht gut, wenn man printf () oder scanf () anstelle von cout und cin nimmt.</p>
<p>MfG mikey.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251943</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251943</guid><dc:creator><![CDATA[mikey]]></dc:creator><pubDate>Sat, 24 Mar 2007 22:25:01 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sat, 24 Mar 2007 23:55:43 GMT]]></title><description><![CDATA[<p>Mir ging es auch nicht unbedingt darum, ob man es nun darf oder nicht. Ich selber finde es auch unschön, wenn man z.b. fopen, fclose usw. in einem C++ Programm verwendet. Aber wie gesagt, darum geht es mir eigentlich nicht.</p>
<p>mikey schrieb:</p>
<blockquote>
<p>calloc - In C++ gibt es hierfür den Operator <strong>new</strong></p>
</blockquote>
<p>Ist nicht malloc das äquivalent zu new? calloc allokiert nämlich Speicher und setzt ihn auf 0. Macht dies new automatisch? Dann hätte ich z.b. jetzt was neues gelernt <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>mikey schrieb:</p>
<blockquote>
<p>realloc - Dies kann man auch mit Std. C++ lösen, wobei diese Funktion sicherlich die einfachere Variante ist.</p>
</blockquote>
<p>Und wie? Das würde mich nämlich genau interessieren, wie man das machen könnte <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>Gibt es eigentlich irgendwo eine Seite, welche die Differenzen ganz klar aufzeigt und die alternativen in C++ für die Funktionen in C aufzeigt? Wäre nämlich manchmal echt noch hilfreich <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>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251986</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251986</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 24 Mar 2007 23:55:43 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sun, 25 Mar 2007 00:16:03 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>mikey schrieb:</p>
<blockquote>
<p>realloc - Dies kann man auch mit Std. C++ lösen, wobei diese Funktion sicherlich die einfachere Variante ist.</p>
</blockquote>
<p>Und wie? Das würde mich nämlich genau interessieren, wie man das machen könnte <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="😉"
    /><br />
Grüssli</p>
</blockquote>
<p>öh...elemente in ein temporäres array kopieren, delete[] und erneut new aufrufen und dann wieder in das eigentliche array kopieren? <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/1251991</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251991</guid><dc:creator><![CDATA[oeh...]]></dc:creator><pubDate>Sun, 25 Mar 2007 00:16:03 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sun, 25 Mar 2007 00:20:44 GMT]]></title><description><![CDATA[<blockquote>
<p>Macht dies new automatisch? Dann hätte ich z.b. jetzt was neues gelernt</p>
</blockquote>
<p>Sorry, malloc ist äquivalent zu new. New setzt den Speicher nicht auf 0.</p>
<blockquote>
<p>Und wie? Das würde mich nämlich genau interessieren, wie man das machen könnte</p>
</blockquote>
<p>Ganz einfach. Du löscht einfach den alten, reservierten Speicherplatz, allokierst dann soviel Speicher, wie angegeben, und gibst dann die Anfangsadresse des reservierten Speicherbereiches zurück. Löschen tut man mit <strong>delete</strong> bzw. <strong>delete</strong> []. Aber das steht in jedem C++ Tutorial. Achja, die vorherigen Daten musst du natürlich noch in einem temp. Array abspeichern, siehe oben.</p>
<blockquote>
<p>Gibt es eigentlich irgendwo eine Seite, welche die Differenzen ganz klar aufzeigt und die alternativen in C++ für die Funktionen in C aufzeigt? Wäre nämlich manchmal echt noch hilfreich</p>
</blockquote>
<p>Ja, <a href="http://www.cppreference.com/" rel="nofollow">cppreference.com</a> bietet dir eine gute Übersicht. Allerdings gibt es auch dort keinen direkten Vergleich zu äquivalenten C++ Funktionen.</p>
<p>MfG mikey.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1251992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1251992</guid><dc:creator><![CDATA[mikey]]></dc:creator><pubDate>Sun, 25 Mar 2007 00:20:44 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sun, 25 Mar 2007 00:40:04 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>mikey schrieb:</p>
<blockquote>
<p>calloc - In C++ gibt es hierfür den Operator <strong>new</strong></p>
</blockquote>
<p>Ist nicht malloc das äquivalent zu new? calloc allokiert nämlich Speicher und setzt ihn auf 0. Macht dies new automatisch? Dann hätte ich z.b. jetzt was neues gelernt <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>Grüssli</p>
</blockquote>
<p>new - kann man dazu bringen mit Nullen zu initialisieren!</p>
<pre><code class="language-cpp">int* ptr = new int [100](); // 100 int mit 0 initialisiert!
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252000</guid><dc:creator><![CDATA[exakt]]></dc:creator><pubDate>Sun, 25 Mar 2007 00:40:04 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sun, 25 Mar 2007 00:51:01 GMT]]></title><description><![CDATA[<p>realloc pendant in C++: std::vector</p>
<p>Bjarne Stroustrup schrieb:</p>
<blockquote>
<p>If you feel the need for realloc() - and many do - then consider using a standard library vector</p>
</blockquote>
<p><a href="http://www.research.att.com/~bs/bs_faq2.html#realloc" rel="nofollow">http://www.research.att.com/~bs/bs_faq2.html#realloc</a></p>
<p>Bjarne Stroustrup schrieb:</p>
<blockquote>
<p>In C++, a better way of dealing with reallocation is to use a standard library container, such as vector, and let it grow naturally.</p>
</blockquote>
<p><a href="http://www.research.att.com/~bs/bs_faq2.html#renew" rel="nofollow">http://www.research.att.com/~bs/bs_faq2.html#renew</a></p>
<p>Bitte mehr in C++ denken! Die C++-Standardlib hat eigentlich immer eigene Lösungen! Und diese müssen nicht zwangsweise heißen, wie in C.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252001</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sun, 25 Mar 2007 00:51:01 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sun, 25 Mar 2007 00:43:20 GMT]]></title><description><![CDATA[<p>Ne, das klappt nicht. Beim Auslesen der ints sind diese trotzdem mit willkürlichen Werten belegt.</p>
<p>Mfg mikey.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252002</guid><dc:creator><![CDATA[mikey]]></dc:creator><pubDate>Sun, 25 Mar 2007 00:43:20 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sun, 25 Mar 2007 00:45:15 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9752">@Dravere</a><br />
Dein Ansatz ist bereits falsch. Du versuchst C in C++ zu programmieren. Das ist falsch. Vergiss C und programmier C++. In C++ benutzt man zB eher std::vector oder std::tr1::array, anstelle sich um die Speicherverwaltung zu kümmern. Wenn man dir nun sagt, das man mit new calloc ersetzen kannst, wirst du vermutlich weiterhin C in C++ programmieren, nur eben mit new anstelle calloc...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252003</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Sun, 25 Mar 2007 00:45:15 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sun, 25 Mar 2007 00:45:51 GMT]]></title><description><![CDATA[<p>mikey schrieb:</p>
<blockquote>
<p>Ne, das klappt nicht. Beim Auslesen der ints sind diese trotzdem mit willkürlichen Werten belegt.</p>
</blockquote>
<pre><code class="language-cpp">vector&lt;int&gt; v1( 100, 0 );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1252004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252004</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sun, 25 Mar 2007 00:45:51 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sun, 25 Mar 2007 00:49:10 GMT]]></title><description><![CDATA[<p>Artchi, danke dir <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>[EDIT] Dann müssten ja alle Fragen von Dravere beantowrtet sein ... Anstatt malloc nimmt man einen vector, anstatt calloc <strong>new</strong> und <strong>delete</strong> bzw. <strong>delete</strong> [] ...</p>
<p>MfG mikey.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252006</guid><dc:creator><![CDATA[mikey]]></dc:creator><pubDate>Sun, 25 Mar 2007 00:49:10 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sun, 25 Mar 2007 01:10:46 GMT]]></title><description><![CDATA[<p>Naja, für malloc() kann man neuerdings auch std::tr1::array nehmen (wie rüdiger schon gesagt hat). Hat aber noch nicht jeder, alternativ boost::array nehmen.</p>
<p>calloc kann man auch durch einen array oder vector ersetzen. Z.B. einen zweidimensionalen variablen Memmory:</p>
<pre><code class="language-cpp">vector&lt;vector&lt;int&gt;&gt; a;

// nachdem man ihn mit push_back()s gefüllt hat, kann man drauf zugreifen:
int i = a[0][0];
//oder
int i = a.at(0).at(0);
</code></pre>
<p>Autom. variabel in beide dimensionen, ohne das man sich drum kümmern muß.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252011</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sun, 25 Mar 2007 01:10:46 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sun, 25 Mar 2007 01:40:33 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>Aber wie mache ich in C++ z.b. ein memset?</p>
</blockquote>
<pre><code>char a[100];
std::fill (a, a+100, '1'); // memset (a, '1', 100);
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252016</guid><dc:creator><![CDATA[vista]]></dc:creator><pubDate>Sun, 25 Mar 2007 01:40:33 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sun, 25 Mar 2007 02:06:32 GMT]]></title><description><![CDATA[<p>Um noch der Vollständigkeit wegen, die C++ Features zu zeigen:</p>
<pre><code class="language-cpp">using std::tr1::array; // alternativ boost::array

// 10er int-Array
array&lt;int,10&gt; a = { { 1, 2, 3, 4, 5 } };

// 4er String-Array
array&lt;std::string,4&gt; seasons = {
        { &quot;spring&quot;, &quot;summer&quot;, &quot;autumn&quot;, &quot;winter&quot; }
};

// 2D-Array mit Strings:
array&lt;array&lt;std::string,4&gt;,2&gt; seasons_i18n = {
        { { { &quot;spring&quot;, &quot;summer&quot;, &quot;autumn&quot;, &quot;winter&quot;, } },
          { { &quot;Fruehling&quot;, &quot;Sommer&quot;, &quot;Herbst&quot;, &quot;Winter&quot; } }
        }
};

// -------------------------------------
typedef array&lt;int, 4&gt; my_array;

my_array a1 = {{ 23 }};

my_array a2(a1); // kopiert a1 in a2

my_array a3;
a3 = a1;   // kopier a1 in a3

if( a1 == a2 )
  cout &lt;&lt; &quot;a1 und a2 gleicher Inhalt.&quot;;
</code></pre>
<p>Tja, das ist C++. <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252019</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252019</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sun, 25 Mar 2007 02:06:32 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sun, 25 Mar 2007 10:22:01 GMT]]></title><description><![CDATA[<p>rüdiger schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9752">@Dravere</a><br />
Dein Ansatz ist bereits falsch. Du versuchst C in C++ zu programmieren. Das ist falsch. Vergiss C und programmier C++. In C++ benutzt man zB eher std::vector oder std::tr1::array, anstelle sich um die Speicherverwaltung zu kümmern. Wenn man dir nun sagt, das man mit new calloc ersetzen kannst, wirst du vermutlich weiterhin C in C++ programmieren, nur eben mit new anstelle calloc...</p>
</blockquote>
<p>Stimmt irgendwie schon ^^<br />
Aber trotzdem würde man halt manchmal gern, auch in C++ plötzlich ein memset machen oder sowas. Da wäre es angenehm, wenn man eben äquivalente Lösungen kennt <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><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1463">@Artchi</a>,<br />
I love you ... eeeeh ... nein, also nicht wirklich ... aber vielen Dank <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="😃"
    /></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/15258">@vista</a>,<br />
Auch danke <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="😉"
    /><br />
O..o Ich sage einem VISTA danke, meine Welt stürzt ein <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="😃"
    /></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252088</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sun, 25 Mar 2007 10:22:01 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sun, 25 Mar 2007 11:11:51 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>Aber trotzdem würde man halt manchmal gern, auch in C++ plötzlich ein memset machen oder sowas. Da wäre es angenehm, wenn man eben äquivalente Lösungen kennt <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>Warum ist das so? Weil du vorher C programmiert hast? Genau aus dem Grund ist es nicht gut, wenn man mit C anfängt, wenn man eigentlich C++ programmieren will.</p>
<p>Ich habe z.B. in meinem Leben noch nie malloc, realloc oder so benutzt. Ich mußte gestern abend sogar wegen diesem Thread erstmal nachschauen was calloc() überhaupt ist! <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="🙄"
    /> Habe ich zum erstmal gehört.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252127</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sun, 25 Mar 2007 11:11:51 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sun, 25 Mar 2007 12:48:16 GMT]]></title><description><![CDATA[<blockquote>
<p>Ich habe z.B. in meinem Leben noch nie malloc, realloc oder so benutzt. Ich mußte gestern abend sogar wegen diesem Thread erstmal nachschauen was calloc() überhaupt ist! Habe ich zum erstmal gehört.</p>
</blockquote>
<p>...musste ich auch <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/1252195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252195</guid><dc:creator><![CDATA[mikey]]></dc:creator><pubDate>Sun, 25 Mar 2007 12:48:16 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sun, 25 Mar 2007 14:11:47 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>Dravere schrieb:</p>
<blockquote>
<p>Aber trotzdem würde man halt manchmal gern, auch in C++ plötzlich ein memset machen oder sowas. Da wäre es angenehm, wenn man eben äquivalente Lösungen kennt <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>Warum ist das so? Weil du vorher C programmiert hast?</p>
</blockquote>
<p>Nein, ich drücke mich daher mal anderst aus, vielleicht kommst dann dahinter, was ich gemeint habe:<br />
Es kommt manchmal vor, dass man einen Speicherbereich mit 0s füllen möchte.<br />
Da fragt man sich halt, wie man dies in C++ macht. Ich kenne da halt zufälligerweise das memset von C und würde dies verwenden, da ich bis anhin, dass std::fill nicht kannte. Jemand der bis anhin nur C++ programmiert hat, der kommt auch auf die Idee, dass er ein Array mit 0s füllen möchte, doch der kennt dann eben schon das std::fill.</p>
<p>Verstanden? ^^</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252237</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sun, 25 Mar 2007 14:11:47 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sun, 25 Mar 2007 15:36:14 GMT]]></title><description><![CDATA[<p>Drave! Meine Frage war nicht schlecht gemeint. Wollte nur wissen, ob du C vorher gemacht hast, da viele gesagt bekommen, das man vorher C lernen soll (was natürlich nicht zu empfehlen ist). Egal, jedenfalls kann ich dir nur als Tip für die Zukunft geben: lerne die C++-Standardlibrary, dann wirst du hoffentlich bald vom C-Style weg kommen. Man muß die C++-Stdlib nicht auswendig lernen (Kann ich auch nicht), aber wenn man darüber gelesen hat wie sie arbeitet und deren Konzepte, und die Standard-Algorithmen (reverse, sort, fill, find usw.), wird man diese auch eher benutzen.</p>
<p>Wie gesagt, es ist meine Empfehlung und kein Vorwurf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252283</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252283</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sun, 25 Mar 2007 15:36:14 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sun, 25 Mar 2007 16:37:11 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>Um noch der Vollständigkeit wegen, die C++ Features zu zeigen:</p>
<pre><code class="language-cpp">using std::tr1::array; // alternativ boost::array

// 10er int-Array
array&lt;int,10&gt; a = { { 1, 2, 3, 4, 5 } };

// 4er String-Array
array&lt;std::string,4&gt; seasons = {
        { &quot;spring&quot;, &quot;summer&quot;, &quot;autumn&quot;, &quot;winter&quot; }
};

// 2D-Array mit Strings:
array&lt;array&lt;std::string,4&gt;,2&gt; seasons_i18n = {
        { { { &quot;spring&quot;, &quot;summer&quot;, &quot;autumn&quot;, &quot;winter&quot;, } },
          { { &quot;Fruehling&quot;, &quot;Sommer&quot;, &quot;Herbst&quot;, &quot;Winter&quot; } }
        }
}
</code></pre>
</blockquote>
<p>Ein bisschen viele Geschweiften Klammern <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> Hätte man das nicht so machen können, dass man weniger Klammern benutzt, oder was steckt dahinter ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252331</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252331</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 25 Mar 2007 16:37:11 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sun, 25 Mar 2007 17:15:06 GMT]]></title><description><![CDATA[<p>Sorry, bei einfachen arrays (also 1D) kann man die &quot;zuvielen&quot; Klammern weg lassen:</p>
<pre><code class="language-cpp">array&lt;std::string,4&gt; a = { &quot;spring&quot;, &quot;summer&quot;, &quot;autumn&quot;, &quot;winter&quot; };
</code></pre>
<p>Bei den 2D-Arrays müssen die vielen Klammern sein. Warum das so ist, kann ich leider nicht sagen. Ist aber halt alles mit Operatorüberladung gelöst und kein Core-C++-Feature. Ihr könnt das also mit aktuellen Compilern problemlos benutzen.</p>
<p>C++2009 wird das ganze dann übrigens wohl auch für vector anbieten, mit der {}-Initialisierer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252359</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sun, 25 Mar 2007 17:15:06 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sun, 25 Mar 2007 17:18:16 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>Ist aber halt alles mit Operatorüberladung gelöst und kein Core-C++-Feature.</p>
</blockquote>
<p>Ok, danke. Erklärt dann einiges <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252361</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 25 Mar 2007 17:18:16 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Sun, 25 Mar 2007 18:43:13 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>Drave! Meine Frage war nicht schlecht gemeint. Wollte nur wissen, ob du C vorher gemacht hast, da viele gesagt bekommen, das man vorher C lernen soll (was natürlich nicht zu empfehlen ist).</p>
</blockquote>
<p>Hab es auch nicht unbedingt als Vorwurf aufgefasst, wollte nur meinen Standpunkt erklären. Um die Frage vielleicht noch direkt zu beantworten:<br />
Ich habe damals direkt mit der MFC angefangen. Das war ein Buch von der Mircosoft Press, zuerst gab es eine kurze Einführung über C++ und danach ging es gleich mit der MFC los. Allerdings über die Einführung, kann ich heute sagen, kann man sich sehr streiten. So werden dort (int)-Cast als C++ verkauft. static_cast usw. werden gar nicht erst erwähnt und so geht es dann auch weiter *g*<br />
Was die MFC betrifft, da war es allerdings perfekt ^^</p>
<p>Zudem habe ich inzwischen ein C++-Buch gekauft, sogar von Stroustrup, allerdings hatte ich bisher noch keine Zeit damit anzufangen <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>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252447</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252447</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sun, 25 Mar 2007 18:43:13 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Mon, 26 Mar 2007 08:57:06 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>...Es kommt manchmal vor, dass man einen Speicherbereich mit 0s füllen möchte...</p>
</blockquote>
<p>Wann passiert das ? Und warum ?<br />
Ich muss gestehen, dass bei mir so schnell nicht das Bedürfnis aufkommt, &quot;einen Speicherberich mit Nullen zu füllen&quot;...<br />
Ich kenne zwar aus C das Bestreben, einen &quot;Objekte&quot; zu initialisieren, aber dafür hat man in C++ Konstruktoren, die das viel besser erledigen.<br />
Ansonsten lösen &quot;genullte Speicherbereiche&quot; keine besonderen Glücksgefühle in mir aus. <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>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252724</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 26 Mar 2007 08:57:06 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Mon, 26 Mar 2007 09:15:48 GMT]]></title><description><![CDATA[<blockquote>
<p>In C++ benutzt man zB eher std::vector oder std::tr1::array, anstelle sich um die Speicherverwaltung zu kümmern.</p>
</blockquote>
<p>Der grosse Nachteil von C++ ist aber, das die &quot;c++ Schnittstellen&quot; nicht standartiesiert sind. Sprich, willst du Programme mit anderen Modulen erweitern und dich nicht auf einen compiler (eine programmiersprache) festlegen, laesst dich C++ gnadenlos im Stich <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="😞"
    /><br />
Da werden Schnittstellen incompatibel zueinander zum Teil nur durch blosse compiler-parameter.</p>
<p>Das wiederum heisst, bei modularer programmierung bist du auf C-Schnittstellen angeweisen.</p>
<p>Das wiederum heisst, willst du da einigermassen performant bleiben (ueberfluessige kopien vermeiden) musst du das Spiel in C mitspielen.</p>
<p>Ansonsten stimme ich zu, innerhalb geschlossener Programme sollt man in C++ den Biblos die speicherverwaltung ueberlassen, und nur notfalls mittels eigener Allokatoren da eingreifen.</p>
<p>Ciao ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252741</guid><dc:creator><![CDATA[RHBaum]]></dc:creator><pubDate>Mon, 26 Mar 2007 09:15:48 GMT</pubDate></item><item><title><![CDATA[Reply to memcpy, memmove, calloc, memset in C++? on Mon, 26 Mar 2007 09:26:34 GMT]]></title><description><![CDATA[<p>RHBaum schrieb:</p>
<blockquote>
<p>...<br />
Der grosse Nachteil von C++ ist aber, das die &quot;c++ Schnittstellen&quot; nicht standartiesiert sind. Sprich, willst du Programme mit anderen Modulen erweitern und dich nicht auf einen compiler (eine programmiersprache) festlegen, laesst dich C++ gnadenlos im Stich <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="😞"
    /><br />
Da werden Schnittstellen incompatibel zueinander zum Teil nur durch blosse compiler-parameter. ...</p>
</blockquote>
<p>Naja - aber nur, wenn man auf Link- oder Laufzeitebene ansetzt oder sich mit der Programmierung nicht an den Standard hält.<br />
Letztlich halte ich es auf jeden Fall für besser, erstmal &quot;sauberes C++&quot; zu programmieren und &quot;im Fall des Falles&quot; C-APIs an den entscheidenden Stellen zu stricken .... selten weiß man im Vorhinein, wo und wie man welche &quot;Fremdmodule&quot; dranpflanschen muss.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1252753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1252753</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 26 Mar 2007 09:26:34 GMT</pubDate></item></channel></rss>