<?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[dynamische Speicherverwaltung (Arrays)]]></title><description><![CDATA[<p>Hallo,<br />
es besteht folgende Aufgabenstellung:<br />
Es können beliebig viele Zahlen eingegeben werden...<br />
Das Array, in dem die Zahlen stehen, soll immer genau so groß sein, wie die Anzahl der Zahlen, die er bereits eingegeben hat (Hat der Benutzer z. B. 20 Zahlen eingegeben, dann darf auch nur Speicherplatz für 20 Zahlen belegt sein).</p>
<p>d.h. doch, dass ich immer wieder die Größe des Arrays ändern muss.<br />
Gibt es in C++ sowas REDIM...PRESERVE wie in VB?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/170447/dynamische-speicherverwaltung-arrays</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 01:51:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/170447.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 16 Jan 2007 10:04:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to dynamische Speicherverwaltung (Arrays) on Tue, 16 Jan 2007 10:04:06 GMT]]></title><description><![CDATA[<p>Hallo,<br />
es besteht folgende Aufgabenstellung:<br />
Es können beliebig viele Zahlen eingegeben werden...<br />
Das Array, in dem die Zahlen stehen, soll immer genau so groß sein, wie die Anzahl der Zahlen, die er bereits eingegeben hat (Hat der Benutzer z. B. 20 Zahlen eingegeben, dann darf auch nur Speicherplatz für 20 Zahlen belegt sein).</p>
<p>d.h. doch, dass ich immer wieder die Größe des Arrays ändern muss.<br />
Gibt es in C++ sowas REDIM...PRESERVE wie in VB?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210587</guid><dc:creator><![CDATA[testor]]></dc:creator><pubDate>Tue, 16 Jan 2007 10:04:06 GMT</pubDate></item><item><title><![CDATA[Reply to dynamische Speicherverwaltung (Arrays) on Tue, 16 Jan 2007 10:07:26 GMT]]></title><description><![CDATA[<p>testor schrieb:</p>
<blockquote>
<p>Hallo,<br />
es besteht folgende Aufgabenstellung:<br />
Es können beliebig viele Zahlen eingegeben werden...<br />
Das Array, in dem die Zahlen stehen, soll immer genau so groß sein, wie die Anzahl der Zahlen, die er bereits eingegeben hat (Hat der Benutzer z. B. 20 Zahlen eingegeben, dann darf auch nur Speicherplatz für 20 Zahlen belegt sein).</p>
<p>d.h. doch, dass ich immer wieder die Größe des Arrays ändern muss.<br />
Gibt es in C++ sowas REDIM...PRESERVE wie in VB?</p>
</blockquote>
<p>Was sagt denn das Lernmaterial (Buch, Skript, etc.) dazu ?</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210592</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 16 Jan 2007 10:07:26 GMT</pubDate></item><item><title><![CDATA[Reply to dynamische Speicherverwaltung (Arrays) on Tue, 16 Jan 2007 10:08:39 GMT]]></title><description><![CDATA[<p>in c++ gibt es std::vector!<br />
oder ein dynamisches array welches du immer per hand die neue größe zuweist!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210595</guid><dc:creator><![CDATA[ser1al_ausgeloggt]]></dc:creator><pubDate>Tue, 16 Jan 2007 10:08:39 GMT</pubDate></item><item><title><![CDATA[Reply to dynamische Speicherverwaltung (Arrays) on Tue, 16 Jan 2007 10:12:34 GMT]]></title><description><![CDATA[<p>ser1al_ausgeloggt schrieb:</p>
<blockquote>
<p>in c++ gibt es std::vector!<br />
oder ein dynamisches array welches du immer per hand die neue größe zuweist!</p>
</blockquote>
<p>Verbleiben wir einfach bei den den Kontainern der STL. <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/1210598</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210598</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 16 Jan 2007 10:12:34 GMT</pubDate></item><item><title><![CDATA[Reply to dynamische Speicherverwaltung (Arrays) on Tue, 16 Jan 2007 10:15:06 GMT]]></title><description><![CDATA[<p>Das ist zwar in C++ nicht gerne gesehen (da nimmt man lieber die STL-Container vector&lt;&gt;, deque&lt;&gt; oder list&lt;&gt; (je nach Anwendung) für dynamisch erweiterbare Arrays), aber es gibt auch noch die C-Speicherverwaltung über malloc(), realloc() und free().</p>
<p>new/delete hat kein Äquivalent zu realloc(), aber du kannst es im Notfall nachbauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210600</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 16 Jan 2007 10:15:06 GMT</pubDate></item><item><title><![CDATA[Reply to dynamische Speicherverwaltung (Arrays) on Tue, 16 Jan 2007 10:16:04 GMT]]></title><description><![CDATA[<p>wir haben noch nichts mit vector gemacht! (das kanns also nicht sein! <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>
<pre><code class="language-cpp">int *array = new int[eine_Zahl];
</code></pre>
<p>wenn er nun die zweite Zahl eingibt, muss ich mein array um 1 feld<br />
vergrößern.<br />
Kann man das irgendwie machen ohne die erste Zahl zu verlieren?<br />
in vb geht das mit redim ..preserve, gibt es sowas auch in c++?<br />
gruß testor</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210602</guid><dc:creator><![CDATA[testor]]></dc:creator><pubDate>Tue, 16 Jan 2007 10:16:04 GMT</pubDate></item><item><title><![CDATA[Reply to dynamische Speicherverwaltung (Arrays) on Tue, 16 Jan 2007 10:20:26 GMT]]></title><description><![CDATA[<p>testor schrieb:</p>
<blockquote>
<p>wir haben noch nichts mit vector gemacht! (das kanns also nicht sein! <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>
<pre><code class="language-cpp">int *array = new int[eine_Zahl];
</code></pre>
<p>wenn er nun die zweite Zahl eingibt, muss ich mein array um 1 feld<br />
vergrößern.<br />
Kann man das irgendwie machen ohne die erste Zahl zu verlieren?<br />
in vb geht das mit redim ..preserve, gibt es sowas auch in c++?<br />
gruß testor</p>
</blockquote>
<p>Nicht wirklich.<br />
Du musst neuen Speicher besorgen (der entsprechend größer ist), den alten Inhalt dahin kopieren, das neue Element hinzufügen und den alten Speicher löschen.<br />
... und natürlich ab da mit einem Zeiger auf den neuen Speicher arbeiten.<br />
(ich vermute, dass VB da - zumindestens ab einem gewissen Punkt - intern auch nichts Anderes macht. Auch VB kann nicht zaubern und irgendwann &quot;kommt da was im Speicher&quot; ...)</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210603</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210603</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 16 Jan 2007 10:20:26 GMT</pubDate></item><item><title><![CDATA[Reply to dynamische Speicherverwaltung (Arrays) on Tue, 16 Jan 2007 10:19:20 GMT]]></title><description><![CDATA[<p>Direkt den Speicher vergrößern kannst du nicht (C hatte realloc(), aber das solltest du nicht mit new/delete kombinieren), also bleibt dir nur eins:</p>
<ul>
<li>größeren Speicherblock reservieren</li>
<li>alle Elemente kopieren</li>
<li>alten Speicherblock freigeben</li>
</ul>
<p>(btw, std::vector arbeitet intern nach dem selben Verfahren - wobei er mitunter etwas Reservespeicher vorrätig hält, um nicht bei jeder Vergrößerung den kompletten Datenblock kopieren zu müssen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210604</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 16 Jan 2007 10:19:20 GMT</pubDate></item><item><title><![CDATA[Reply to dynamische Speicherverwaltung (Arrays) on Tue, 16 Jan 2007 10:22:20 GMT]]></title><description><![CDATA[<p>Nein, geht nicht so einfach. Wenn es so einfach wäre, würde es kein std::vector geben. <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/1210605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210605</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Tue, 16 Jan 2007 10:22:20 GMT</pubDate></item><item><title><![CDATA[Reply to dynamische Speicherverwaltung (Arrays) on Tue, 16 Jan 2007 10:45:18 GMT]]></title><description><![CDATA[<p>hallo, falls du englisch kannst, könnte es hilfreich sein, <a href="http://www.brpreiss.com/books/opus4/html/page80.html" rel="nofollow">hier</a> nachzulesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210619</guid><dc:creator><![CDATA[schorsch code]]></dc:creator><pubDate>Tue, 16 Jan 2007 10:45:18 GMT</pubDate></item></channel></rss>