<?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[Länge eines dynamischen Arrays]]></title><description><![CDATA[<p>Hi, ich möchte gerne zur Laufzeit die Länge eines dynamisch angelegten Arrays ermitteln. Dazu gibt es einen Trick indem man sich diese extra Information der Länge, in z. B. einer struct ablegt. Bzw. geht dies wohl durch überladen des new operators. Leider habe ich im Inet nichts vernünftiges gefunden. Hat zufällig jemand einen Link parat der sich mit dem Thema beschäftigt bzw. weiß man dies bewerkstelligt?</p>
<pre><code>int* myarray = new int[42];
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/336802/länge-eines-dynamischen-arrays</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Apr 2026 22:16:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/336802.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 17 Feb 2016 20:38:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Länge eines dynamischen Arrays on Wed, 17 Feb 2016 20:38:35 GMT]]></title><description><![CDATA[<p>Hi, ich möchte gerne zur Laufzeit die Länge eines dynamisch angelegten Arrays ermitteln. Dazu gibt es einen Trick indem man sich diese extra Information der Länge, in z. B. einer struct ablegt. Bzw. geht dies wohl durch überladen des new operators. Leider habe ich im Inet nichts vernünftiges gefunden. Hat zufällig jemand einen Link parat der sich mit dem Thema beschäftigt bzw. weiß man dies bewerkstelligt?</p>
<pre><code>int* myarray = new int[42];
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2487613</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2487613</guid><dc:creator><![CDATA[Yarra]]></dc:creator><pubDate>Wed, 17 Feb 2016 20:38:35 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines dynamischen Arrays on Wed, 17 Feb 2016 20:40:10 GMT]]></title><description><![CDATA[<p>Nutz einen std::vector oder andere STL Container.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2487614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2487614</guid><dc:creator><![CDATA[fdgdfgfdg]]></dc:creator><pubDate>Wed, 17 Feb 2016 20:40:10 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines dynamischen Arrays on Thu, 18 Feb 2016 07:05:26 GMT]]></title><description><![CDATA[<p>Kein Interesse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2487641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2487641</guid><dc:creator><![CDATA[Yarra]]></dc:creator><pubDate>Thu, 18 Feb 2016 07:05:26 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines dynamischen Arrays on Thu, 18 Feb 2016 07:27:09 GMT]]></title><description><![CDATA[<pre><code>int* myarray = new int[42];
</code></pre>
<p>es gibt keinen Weg um die Größe des Speichers der hinter dem myarray-Pointer steht zu ermitteln - musst du selber mitschleifen</p>
<p>in C++ mit nackten Pointer zu arbeiten ist nicht so gerne gesehen<br />
also</p>
<p>#include &lt;vector&gt;<br />
std::vector&lt;int&gt; myarray(42);<br />
myarray.size() == 42</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2487643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2487643</guid><dc:creator><![CDATA[Gast3]]></dc:creator><pubDate>Thu, 18 Feb 2016 07:27:09 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines dynamischen Arrays on Thu, 18 Feb 2016 10:31:58 GMT]]></title><description><![CDATA[<p>Gast3 schrieb:</p>
<blockquote>
<p>in C++ mit nackten Pointer**, die Resourcen besitzen,** zu arbeiten ist nicht so gerne gesehen**, weil es fehleranfällig ist**</p>
</blockquote>
<p>Siehe Edit</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2487658</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2487658</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Thu, 18 Feb 2016 10:31:58 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines dynamischen Arrays on Thu, 18 Feb 2016 14:08:05 GMT]]></title><description><![CDATA[<p>Yarra schrieb:</p>
<blockquote>
<p>Kein Interesse.</p>
</blockquote>
<p>warum möchtest du denn den std::vector nicht nutzen?</p>
<p>er ist ein dynamischer container:<br />
- der z.B. eine funktion hat dir die länge zurückzugibt<br />
- ist fehlerunanfälliger<br />
- bietet weiter funktionen die dir, als programmierer das leben einfacher macht</p>
<p>was spricht also dagegen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2487669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2487669</guid><dc:creator><![CDATA[AHA]]></dc:creator><pubDate>Thu, 18 Feb 2016 14:08:05 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines dynamischen Arrays on Thu, 18 Feb 2016 15:02:06 GMT]]></title><description><![CDATA[<p>Das frage ich mich auch. Ich kann verstehen, wenn man so einen Container mal selber implementieren möchte zu Übungszwecken, aber das ist auch der einzige Grund.</p>
<p>Wenn vector eben nicht in Production Code nutzt (und statt dessen eine Quick&amp;Dirty Lösung) spricht das schon von sehr großer Dummheit. Und was mir bei dem Beitrag</p>
<p>Yarra schrieb:</p>
<blockquote>
<p>Kein Interesse.</p>
</blockquote>
<p>für ein Eindruck entstanden ist, war &quot;Keine Lust die Referenz zu lesen, weil ich zu faul bin.&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2487674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2487674</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Thu, 18 Feb 2016 15:02:06 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines dynamischen Arrays on Thu, 18 Feb 2016 16:23:41 GMT]]></title><description><![CDATA[<p>Ein Mod möge womöglich die IP-Adressen der beiden 'Yarra's vergleichen, womöglich ist der zweite Post ein Trollpost.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2487683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2487683</guid><dc:creator><![CDATA[Techel]]></dc:creator><pubDate>Thu, 18 Feb 2016 16:23:41 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines dynamischen Arrays on Thu, 18 Feb 2016 16:30:33 GMT]]></title><description><![CDATA[<p>wenns nur zum Spielen ist, dann kannst du natürlich new[] überladen und zusätzlich 4 Byte anfordern, in welchen du die Länge (in Byte) speicherst.</p>
<pre><code>void* operator new[](size_t s)
{
/*
hier statt s zusätzlich 4 Byte anfordern (s+4).
In den ersten 4 Byte die Länge speichern, und schließlich die Adresse des von malloc gegebenen Speichers + 4 rechnen
*/

   return  malloc(s); 
}

void operator delete[](void* p)
{
/*hier von p wieder die 4 byte abziehen und schließlich an free übergeben*/
   free(p);
}

// Länge in Byte. Anzahl der Elemente: müsstest du noch durch sizeof(Typ) dividieren
size_t getLengthOfArrayInByte(void* p)
{
   size_t len=...; // 4 byte vor p findet sich die Länge
   return len
}
</code></pre>
<p>Du kannst dann bei jedem mit new[] erstellten Array die Länge abfragen.</p>
<p>Sofern das ganze auch nur ein halbwegs sinnvolles Programm werden soll: nimm std::vector</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2487687</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2487687</guid><dc:creator><![CDATA[dgfdfgdfg]]></dc:creator><pubDate>Thu, 18 Feb 2016 16:30:33 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines dynamischen Arrays on Thu, 18 Feb 2016 17:12:50 GMT]]></title><description><![CDATA[<p>du kannst auch ganz einfach schreiben:</p>
<pre><code>int *array;
int arraylength=255;

array = new int[arraylength];

void resizearray(int newlength)
{
int *temp=new int[newlength];

for(int i=0;i&lt;arraylength;i++)
{
*(temp+i)=*(array+i);
}

arraylength=newlength;
}
</code></pre>
<p>alles natürlich sauber in eine klasse eingebettet, was ich hier aus bequemlichkeitsgründen nicht getan habe. <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/2487691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2487691</guid><dc:creator><![CDATA[HansKlaus]]></dc:creator><pubDate>Thu, 18 Feb 2016 17:12:50 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines dynamischen Arrays on Thu, 18 Feb 2016 17:14:50 GMT]]></title><description><![CDATA[<p>sorry außerdem musst du natürlich ein delete array, ein array=temp; und ein temp=0; anweisen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2487692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2487692</guid><dc:creator><![CDATA[HansKlaus]]></dc:creator><pubDate>Thu, 18 Feb 2016 17:14:50 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines dynamischen Arrays on Thu, 18 Feb 2016 17:30:12 GMT]]></title><description><![CDATA[<p>temp = 0 setzen obwohl es doch eh am ende der Funktion rausfällt?<br />
Eine manuelle Allokation und ein roher, besitzender Zeiger hat unter anderem einen Nachteil: Fliegt eine Ausnahme, wird der Speicher nicht freigegeben, jedoch werden die Desktruktoren der lokalen Objekte aufgerufen, weshalb smarte zeiger und container denoch ihren besitz freigeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2487698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2487698</guid><dc:creator><![CDATA[Techel]]></dc:creator><pubDate>Thu, 18 Feb 2016 17:30:12 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines dynamischen Arrays on Thu, 18 Feb 2016 18:20:10 GMT]]></title><description><![CDATA[<p>roflo schrieb:</p>
<blockquote>
<p>Ein Mod möge womöglich die IP-Adressen der beiden 'Yarra's vergleichen, womöglich ist der zweite Post ein Trollpost.</p>
</blockquote>
<p>Tja, das ist eben der Nachteil, wenn man sich nicht registriert. Ich kann jedenfalls sagen, dass der zweite Beitrag nicht unbedingt von der gleichen Person stammt wie der erste.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2487712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2487712</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 18 Feb 2016 18:20:10 GMT</pubDate></item></channel></rss>