<?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[realloc]]></title><description><![CDATA[<p>Guten Abend,<br />
habe zum üben eine Musterklausur und verstehe eine Aufgabe nicht. Vielleicht kann mir ja jemand helfen.<br />
Folgende Aufgabenstellung:<br />
Gegeben ist die folgende Implementierung einer Memberfunktion:</p>
<pre><code class="language-cpp">int intlist::additem(int i)//Memberfunktion additem
{
ilist=...realloc(ilist,count +1);//realloc ändert Größe des Speichers auf den ilist zeigt in Byte(count +1)und gibt neuen Zeiger zurück
*(ilist+count -1)=i;//??
count++;
}
</code></pre>
<p>(Anmerkung: ilist ist wie folgt deklariert: int *ilist)</p>
<p>a) Würde der Compiler eine Fehlermeldung auswerfen?<br />
b) Wenn ja warum?<br />
c) korriegieren Sie die Zeile ilist=.... indem Sie an der Stelle der Punkte eine Korrektur einfügen.</p>
<p>(Die Kommentare sind meine kläglichen Versuche) <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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/193909/realloc</link><generator>RSS for Node</generator><lastBuildDate>Mon, 28 Sep 2026 07:41:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/193909.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 01 Oct 2007 15:41:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to realloc on Mon, 01 Oct 2007 15:41:40 GMT]]></title><description><![CDATA[<p>Guten Abend,<br />
habe zum üben eine Musterklausur und verstehe eine Aufgabe nicht. Vielleicht kann mir ja jemand helfen.<br />
Folgende Aufgabenstellung:<br />
Gegeben ist die folgende Implementierung einer Memberfunktion:</p>
<pre><code class="language-cpp">int intlist::additem(int i)//Memberfunktion additem
{
ilist=...realloc(ilist,count +1);//realloc ändert Größe des Speichers auf den ilist zeigt in Byte(count +1)und gibt neuen Zeiger zurück
*(ilist+count -1)=i;//??
count++;
}
</code></pre>
<p>(Anmerkung: ilist ist wie folgt deklariert: int *ilist)</p>
<p>a) Würde der Compiler eine Fehlermeldung auswerfen?<br />
b) Wenn ja warum?<br />
c) korriegieren Sie die Zeile ilist=.... indem Sie an der Stelle der Punkte eine Korrektur einfügen.</p>
<p>(Die Kommentare sind meine kläglichen Versuche) <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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376083</guid><dc:creator><![CDATA[mila]]></dc:creator><pubDate>Mon, 01 Oct 2007 15:41:40 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Mon, 01 Oct 2007 15:46:47 GMT]]></title><description><![CDATA[<p>Hallo,<br />
zwei Tipps:</p>
<p>1.</p>
<blockquote>
<p>Anmerkung: ilist ist wie folgt deklariert: int *ilist</p>
</blockquote>
<p>2. der Prototyp von realloc sieht so aus:</p>
<pre><code class="language-cpp">void *realloc(
   void *memblock,
   size_t size 
);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1376086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376086</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Mon, 01 Oct 2007 15:46:47 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Mon, 01 Oct 2007 16:01:48 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">ilist=int* realloc(ilist,count +1);
</code></pre>
<p>Zeile ok?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376094</guid><dc:creator><![CDATA[mila]]></dc:creator><pubDate>Mon, 01 Oct 2007 16:01:48 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Mon, 01 Oct 2007 20:25:02 GMT]]></title><description><![CDATA[<p>Der Code ist von vorne bis hinten Topfen, und wir machen keine Hausaufgaben.<br />
Und nein, &quot;Zeile nicht ok&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376211</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 01 Oct 2007 20:25:02 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Tue, 02 Oct 2007 10:07:54 GMT]]></title><description><![CDATA[<p>mila schrieb:</p>
<blockquote>
<pre><code class="language-cpp">ilist=int* realloc(ilist,count +1);
</code></pre>
<p>Zeile ok?</p>
</blockquote>
<p>Fast. Tipp 3. Schau dir das Kapitel &quot;Cast Ausdrücke&quot; in deinem bevorzugten Einsteiger-C++-Buch an.</p>
<blockquote>
<p>Der Code ist von vorne bis hinten Topfen</p>
</blockquote>
<p>Das haben Klausuraufgaben meist so an sich...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376416</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Tue, 02 Oct 2007 10:07:54 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Tue, 02 Oct 2007 10:41:44 GMT]]></title><description><![CDATA[<p>Und die Zeile <code>*(ilist+count -1)=i;</code> kann man auch so schreiben: <code>ilist[count-1] = i;</code> . Und zur Erinnerung, die Elemente in einem Array kann man immer von <code>arr[0]..arr[count-1]</code> ansprechen <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>edit: Richtig, ghorst hat Recht! Indem Beispiel-Code im ersten Post ist das letzte Element natürlich arr[count], weil der Speicher dort ja schon vergrößert wurde, count aber noch nicht erhöht wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376424</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 02 Oct 2007 10:41:44 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Tue, 02 Oct 2007 10:33:11 GMT]]></title><description><![CDATA[<p>das mit dem letzten element trifft hier aber nicht zu, da die größe count+1 ist und somit array[count] das letzte element wäre.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376429</guid><dc:creator><![CDATA[ghorst]]></dc:creator><pubDate>Tue, 02 Oct 2007 10:33:11 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Tue, 02 Oct 2007 10:37:25 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">p=realloc(p,...)
</code></pre>
<p>ist auch so ein Anti-Pattern eigener Art...<br />
Eines der Schlimmeren, weil es so unschuldig aussieht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376431</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 02 Oct 2007 10:37:25 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Tue, 02 Oct 2007 10:37:27 GMT]]></title><description><![CDATA[<p>Jetzt muß man nur noch hoffen, daß ein Byte groß genug ist, um einen kompletten int-Wert zu fassen <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="😉"
    /> ('count+1' Integers sind idR etwas größer als die 'count+1' Byte, die mit realloc() angefordert wurden)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376432</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376432</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 02 Oct 2007 10:37:27 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Tue, 02 Oct 2007 10:45:49 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@CStoll</a> stimmt du hast recht. ich war irgendwie darauf fixziert, dass es ein char-array sein müsste, da sonst der aufruf von realloc mit count+1 keinerlei sinn machen würde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376440</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376440</guid><dc:creator><![CDATA[ghorst]]></dc:creator><pubDate>Tue, 02 Oct 2007 10:45:49 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Tue, 02 Oct 2007 14:39:07 GMT]]></title><description><![CDATA[<p>neuer Versuch...</p>
<pre><code class="language-cpp">ilist=(* int) realloc(ilist,count +1);//Typecast, Rückgabetyp int-Zeiger
</code></pre>
<pre><code class="language-cpp">*(ilist+count -1)=i;
</code></pre>
<p>Speicherbereich wird um int 1 erhöht<br />
und anschließend wird in den vorletzten Speicherbereich der übergebene Wert i eingetragen.<br />
Hoffe, dass ich es jetzt verstanden habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376648</guid><dc:creator><![CDATA[mila]]></dc:creator><pubDate>Tue, 02 Oct 2007 14:39:07 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Tue, 02 Oct 2007 14:55:33 GMT]]></title><description><![CDATA[<p>Der Cast ist immer noch falsch (Tip: Wie schreibt man den Typ &quot;Zeiger auf int&quot;?) - und die Größe des angeforderten Speichers ist immer noch zu klein (sizeof() hilft).</p>
<p>btw, der Zugriff auf das letzte Element war schon vorher (relativ) richtig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376665</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 02 Oct 2007 14:55:33 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Tue, 02 Oct 2007 15:08:20 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>und die Größe des angeforderten Speichers ist immer noch zu klein (sizeof() hilft).</p>
</blockquote>
<p>Um es ein wenig deutlicher zu machen (CStoll spielt gern Geheimniskrämer :p), malloc bzw realloc holen dir Speicher mit so vielen <strong>Bytes</strong> wie du angibst. Hier wird angegeben, dass count+1 Bytes geholt werden sollen. Da ein int aber größer als ein Byte ist, ist es zuwenig Speicher. sizeof(int) gibt zurück, wieviele Bytes ein int groß ist <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/1376679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376679</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 02 Oct 2007 15:08:20 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Tue, 02 Oct 2007 15:15:13 GMT]]></title><description><![CDATA[<p>Danke für die Hilfe, bin wohl ein ziemlich schwieriger Fall.</p>
<pre><code class="language-cpp">ilist=(int*) realloc(ilist,count+sizeof(int));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1376685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376685</guid><dc:creator><![CDATA[mila]]></dc:creator><pubDate>Tue, 02 Oct 2007 15:15:13 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Tue, 02 Oct 2007 17:00:18 GMT]]></title><description><![CDATA[<p>In der Tat, wenn 1 int sizeof(int) Bytes belegt, wieviele Bytes belegen dann n ints? Doch nicht sizeof(int)+n !</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376770</guid><dc:creator><![CDATA[Ben04]]></dc:creator><pubDate>Tue, 02 Oct 2007 17:00:18 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Tue, 02 Oct 2007 20:00:45 GMT]]></title><description><![CDATA[<p>mila schrieb:</p>
<blockquote>
<p>Danke für die Hilfe, bin wohl ein ziemlich schwieriger Fall.</p>
<pre><code class="language-cpp">ilist=(int*) realloc(ilist,count+sizeof(int));
</code></pre>
</blockquote>
<p>Nö, du kannst bloss anscheinend weder gut rechnen noch programmieren.<br />
Lern doch zusammen mit nem Schul-/Studienkollegen, das geht viel schneller, besser, effektiver als hier über ein Forum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1376863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376863</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 02 Oct 2007 20:00:45 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Tue, 02 Oct 2007 20:55:56 GMT]]></title><description><![CDATA[<p>mila schrieb:</p>
<blockquote>
<p>Danke für die Hilfe, bin wohl ein ziemlich schwieriger Fall.</p>
<pre><code class="language-cpp">ilist=(int*) realloc(ilist,count+sizeof(int));
</code></pre>
</blockquote>
<p>scheint so, <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="😉"
    /> ich denke du willst das:</p>
<pre><code>realloc(ilist,count[u]*[/u]sizeof(int))
</code></pre>
<p>ausserdem: beachte auch campers posting. realloc kann schief gehen und dann ist dein pointer futsch.<br />
<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/1376891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376891</guid><dc:creator><![CDATA[Apeman]]></dc:creator><pubDate>Tue, 02 Oct 2007 20:55:56 GMT</pubDate></item><item><title><![CDATA[Reply to realloc on Tue, 02 Oct 2007 21:53:20 GMT]]></title><description><![CDATA[<p>Im Zusammenhang muss es dann natürlich (count+1)*sizeof(int) heißen <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/1376914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1376914</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 02 Oct 2007 21:53:20 GMT</pubDate></item></channel></rss>