<?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[Probleme mit neu definerten CALLOC]]></title><description><![CDATA[<p>Habe diese Zeile in einem Programm stehen und verstehen sie leider gar nicht.</p>
<pre><code class="language-cpp">#define CALLOC(ptr, nr, type) if(!(ptr = (type *) calloc((size_t)(nr), sizeof(type)))) {fprintf(stderr, &quot;calloc failed on line %d of file %s\n&quot;, __LINE__, __FILE__); exit(FAIL); }
</code></pre>
<p>Ich verstehe: Ich definiere mir eine neue function CALLOC()mit drei argumenten ptr,nr und type. danach müsste eigentlich die anweisung kommen, was diese funktion genau machen soll.<br />
Mein Gedanke ist, dass wenn ptr nicht (type <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="😉"
    /> ist, dann soll calloc() mit (size_t)(nr) bobjekten und diese objekte haben sizeof(type) bytes?<br />
der fehlerprint danach ist erstmal nicht so wichtig.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/170346/probleme-mit-neu-definerten-calloc</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 02:45:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/170346.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 14 Jan 2007 17:39:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit neu definerten CALLOC on Sun, 14 Jan 2007 17:39:48 GMT]]></title><description><![CDATA[<p>Habe diese Zeile in einem Programm stehen und verstehen sie leider gar nicht.</p>
<pre><code class="language-cpp">#define CALLOC(ptr, nr, type) if(!(ptr = (type *) calloc((size_t)(nr), sizeof(type)))) {fprintf(stderr, &quot;calloc failed on line %d of file %s\n&quot;, __LINE__, __FILE__); exit(FAIL); }
</code></pre>
<p>Ich verstehe: Ich definiere mir eine neue function CALLOC()mit drei argumenten ptr,nr und type. danach müsste eigentlich die anweisung kommen, was diese funktion genau machen soll.<br />
Mein Gedanke ist, dass wenn ptr nicht (type <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="😉"
    /> ist, dann soll calloc() mit (size_t)(nr) bobjekten und diese objekte haben sizeof(type) bytes?<br />
der fehlerprint danach ist erstmal nicht so wichtig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209827</guid><dc:creator><![CDATA[TolpanB]]></dc:creator><pubDate>Sun, 14 Jan 2007 17:39:48 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit neu definerten CALLOC on Sun, 14 Jan 2007 18:34:59 GMT]]></title><description><![CDATA[<p>TolpanB schrieb:</p>
<blockquote>
<p>Ich verstehe: Ich definiere mir eine neue function CALLOC()...</p>
</blockquote>
<p>Schon falsch. das ist keine Funktion, sondern ein Makro.<br />
Makros sind keine Funktionsaufrufe, sondern werden in den Sourcecode vor dem Compilieren durch den Präprozessor eingefügt.</p>
<p>TolpanB schrieb:</p>
<blockquote>
<p>Mein Gedanke ist, dass wenn ptr nicht (type <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="😉"
    /> ist,</p>
</blockquote>
<p>Auch falsch. Mit (type*) wird das Ergebnis von calloc nur auf diesen Type gecasted. Danach wird geprüft ob das Ergebnis ungleich null ist ( if( ! (....) ) ).</p>
<p>Vielleicht mal ein Grundlagenbuch für C lesen? Ein altes Sprichwort sagt: Lesen bildet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209855</guid><dc:creator><![CDATA[Tolpatsch]]></dc:creator><pubDate>Sun, 14 Jan 2007 18:34:59 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit neu definerten CALLOC on Mon, 15 Jan 2007 11:19:50 GMT]]></title><description><![CDATA[<p>...statt size_t sollte glaube ich ein definierter Rückgabetyp oder ein vorgegebener Wert stehen(.?!;) Ist dieser Code echt in einem Programm? oder aus einem Lehrbuch abgeschrieben? Entschuldigung im vorhinein falls ich falsch liege aber ich konnte es mir nicht verkneifen hierauf diese Frage zu stellen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210158</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210158</guid><dc:creator><![CDATA[Christoph Durst]]></dc:creator><pubDate>Mon, 15 Jan 2007 11:19:50 GMT</pubDate></item></channel></rss>