<?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[Statisches array schrumpfen lassen]]></title><description><![CDATA[<p>Hallo,<br />
ich brauche eine Methode um aus einem Array alle 0-elemente zu löschen, d.h ein neues array zu erzeugen welches aus nur nicht-NUll einträgen besteht im gegensatzt zum ausgangsarray.</p>
<p>Jetzt kann ich mir aber nur vorstellen dass ich insgesamt 2 mal über das ausgangsarray laufen muss. Einmal um die anzahl der nicht-null einträge zu bestimmen um dann das neue array alloziieren zu können und einmal um dann das array zu füllen mit den nicht-null einträgen.</p>
<p>Sehe ich das richtig das ich mit &quot;normalen&quot; arrays (also keine vectoren oder listen) hier wirklich 2 Läufe brauche?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/156961/statisches-array-schrumpfen-lassen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 00:00:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/156961.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 Aug 2006 20:36:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Statisches array schrumpfen lassen on Mon, 21 Aug 2006 20:36:19 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich brauche eine Methode um aus einem Array alle 0-elemente zu löschen, d.h ein neues array zu erzeugen welches aus nur nicht-NUll einträgen besteht im gegensatzt zum ausgangsarray.</p>
<p>Jetzt kann ich mir aber nur vorstellen dass ich insgesamt 2 mal über das ausgangsarray laufen muss. Einmal um die anzahl der nicht-null einträge zu bestimmen um dann das neue array alloziieren zu können und einmal um dann das array zu füllen mit den nicht-null einträgen.</p>
<p>Sehe ich das richtig das ich mit &quot;normalen&quot; arrays (also keine vectoren oder listen) hier wirklich 2 Läufe brauche?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121844</guid><dc:creator><![CDATA[gerre]]></dc:creator><pubDate>Mon, 21 Aug 2006 20:36:19 GMT</pubDate></item><item><title><![CDATA[Reply to Statisches array schrumpfen lassen on Mon, 21 Aug 2006 22:14:31 GMT]]></title><description><![CDATA[<p>Nicht unbedingt. Das Zielarray kann sowieso nur ein dynamisches Array sein, wenn dessen Grösse Element genau angepasst werden soll. Und da reicht ein Durchlauf aus, sofern der Container über eine entsprechende resize Funktion verfügt.<br />
Ansonsten, man kann ja auch das Ausgangsarray als Zielarray verwenden. Zwar sind dann einige Einträge am Ende ungenutzt, da es sich aber um ein statisches Array handelt, kann es sowieso nicht in der Grösse werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1121884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121884</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Mon, 21 Aug 2006 22:14:31 GMT</pubDate></item><item><title><![CDATA[Reply to Statisches array schrumpfen lassen on Tue, 22 Aug 2006 04:13:06 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int main () 
{ 
    char arr[] = {0, 7, 9, 4, 0, 3, 4, 0, 1};
    char* lesen = arr;
    char* schreiben = arr;
    int newlen = 0;

        for (int len = sizeof arr; len; lesen++, len--)
        {
            if (*lesen != 0)
                schreiben[newlen++] = *lesen;
        }  
    return 0; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1121910</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121910</guid><dc:creator><![CDATA[noob33]]></dc:creator><pubDate>Tue, 22 Aug 2006 04:13:06 GMT</pubDate></item><item><title><![CDATA[Reply to Statisches array schrumpfen lassen on Tue, 22 Aug 2006 04:29:50 GMT]]></title><description><![CDATA[<p>noob33 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int main () 
{ 
    char arr[] = {0, 7, 9, 4, 0, 3, 4, 0, 1};
    char* lesen = arr;
    char* schreiben = arr;
    int newlen = 0;
    
        for (int len = sizeof arr; len; lesen++, len--)
        {
            if (*lesen != 0)
                schreiben[newlen++] = *lesen;
        }  
    return 0; 
}
</code></pre>
</blockquote>
<p>oder auch</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt;
int main()
{ 
    char arr[] = {0, 7, 9, 4, 0, 3, 4, 0, 1};
    int newlen = std::remove( arr, arr + sizeof arr, 0 ) - arr;
    return 0; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1121911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1121911</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 22 Aug 2006 04:29:50 GMT</pubDate></item><item><title><![CDATA[Reply to Statisches array schrumpfen lassen on Tue, 22 Aug 2006 16:21:22 GMT]]></title><description><![CDATA[<p>danke damit gibt es natürlich am ende ungenutzte einträge.<br />
Wie kann ich denn aber im nachhinein jetzt NUR die genutzen einträge auch bekommen? weil die länge des array ist ja grösser als die der genutzten einträge...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122268</guid><dc:creator><![CDATA[gerre]]></dc:creator><pubDate>Tue, 22 Aug 2006 16:21:22 GMT</pubDate></item><item><title><![CDATA[Reply to Statisches array schrumpfen lassen on Tue, 22 Aug 2006 16:44:50 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">char* b = new char[newlen];
  memcpy(b, arr, (size_t)newlen);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1122284</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122284</guid><dc:creator><![CDATA[Helmut S.]]></dc:creator><pubDate>Tue, 22 Aug 2006 16:44:50 GMT</pubDate></item></channel></rss>