<?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[Array per laufzeit erweitern]]></title><description><![CDATA[<p>Morgen zusammen,</p>
<p>kann ich ein array zur laufzeit erweitern ohne das die Werte verloren gehen?</p>
<p>also jetzt mal sinnloses beispiel:</p>
<pre><code class="language-cpp">int *test;
for(int i=0;i&lt;50;i++)
{
test = new int[i+1];
test[i]=i;
}
</code></pre>
<p>würde bzw. könnte man das so machen?</p>
<p>Danke schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/208042/array-per-laufzeit-erweitern</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 06:31:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/208042.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 14 Mar 2008 06:29:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array per laufzeit erweitern on Fri, 14 Mar 2008 06:29:53 GMT]]></title><description><![CDATA[<p>Morgen zusammen,</p>
<p>kann ich ein array zur laufzeit erweitern ohne das die Werte verloren gehen?</p>
<p>also jetzt mal sinnloses beispiel:</p>
<pre><code class="language-cpp">int *test;
for(int i=0;i&lt;50;i++)
{
test = new int[i+1];
test[i]=i;
}
</code></pre>
<p>würde bzw. könnte man das so machen?</p>
<p>Danke schonmal</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1474054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1474054</guid><dc:creator><![CDATA[JBOpael]]></dc:creator><pubDate>Fri, 14 Mar 2008 06:29:53 GMT</pubDate></item><item><title><![CDATA[Reply to Array per laufzeit erweitern on Fri, 14 Mar 2008 08:30:29 GMT]]></title><description><![CDATA[<p>Jein. <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="🙂"
    /> Du kannst ein bestehendes Array nicht einfach erweitern, sondern musst ein neues Array mit der neuen Größe erstellen und die alten Werte dort hineinkopieren, das alte Array löschen und abschließend den alten Zeiger den neuen Zeiger zuweisen.</p>
<p>Einfacher geht so etwas mit std::vector(). Hier wird der Platz automatisch vergrößert, wenn er nicht mehr reicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1474087</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1474087</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 14 Mar 2008 08:30:29 GMT</pubDate></item><item><title><![CDATA[Reply to Array per laufzeit erweitern on Fri, 14 Mar 2008 09:23:11 GMT]]></title><description><![CDATA[<p>Joe_M schrieb:</p>
<blockquote>
<p>Du [...] musst ein neues Array mit der neuen Größe erstellen und die alten Werte dort hineinkopieren, das alte Array löschen und abschließend den alten Zeiger den neuen Zeiger zuweisen.</p>
</blockquote>
<p>Das is ja dann von München über Rom nach Berlin gefahren - erinnert mich an meine Programme <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/1474127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1474127</guid><dc:creator><![CDATA[Kolumbus]]></dc:creator><pubDate>Fri, 14 Mar 2008 09:23:11 GMT</pubDate></item><item><title><![CDATA[Reply to Array per laufzeit erweitern on Fri, 14 Mar 2008 09:33:32 GMT]]></title><description><![CDATA[<p>std::vector&lt;int&gt; ist dein Freund...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1474137</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1474137</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Fri, 14 Mar 2008 09:33:32 GMT</pubDate></item><item><title><![CDATA[Reply to Array per laufzeit erweitern on Fri, 14 Mar 2008 09:44:12 GMT]]></title><description><![CDATA[<p>DocShoe schrieb:</p>
<blockquote>
<p>std::vector&lt;int&gt; ist dein Freund...</p>
</blockquote>
<p>Darauf hatte ich in meinem Posting ebenfalls hingewiesen. Nur der Vollständigkeit halber, habe ich den Weg aufgezeigt, ein Array zu vergrößern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1474147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1474147</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 14 Mar 2008 09:44:12 GMT</pubDate></item><item><title><![CDATA[Reply to Array per laufzeit erweitern on Fri, 14 Mar 2008 12:42:13 GMT]]></title><description><![CDATA[<p>JBOpael schrieb:</p>
<blockquote>
<p>Morgen zusammen,</p>
<p>kann ich ein array zur laufzeit erweitern ohne das die Werte verloren gehen?</p>
<p>also jetzt mal sinnloses beispiel:</p>
<pre><code class="language-cpp">int *test;
for(int i=0;i&lt;50;i++)
{
test = new int[i+1];
test[i]=i;
}
</code></pre>
<p>würde bzw. könnte man das so machen?</p>
<p>Danke schonmal</p>
</blockquote>
<p>Auf keinen Fall macht man das so. Wenn du dir mal genau anguckts, was du da gerade tust, wirst du feststellen, dass du in jedem Schleifendurchlauf ein neues Array erzeugst. Das wirft zwei Probleme auf: 1. Du möchstest bestimmt nur ein Mal ein neues Array erzeugen, dann aber mit der richtigen Größe. 2. Wer gibt das alte Array eigentlich frei? Ich sehe da nirgendwo ein delete[].<br />
WENN man das so machen würde, dann sollte der Code auch Exception-safe sein und etwa so aussehen:</p>
<pre><code>int main()
{
   int* piOldArray = new int[10];

   int* piNewArray = new int[20];

   std::copy( piNewArray, piNewArray +10, piOldArray );

   delete[] piOldArray;
   piOldArray = piNewArray;
}
</code></pre>
<p>PS:<br />
std::vector&lt;int&gt; ist wirklich dein Freund</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1474255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1474255</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Fri, 14 Mar 2008 12:42:13 GMT</pubDate></item></channel></rss>