<?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 aus Referenzen erstellen]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich möchte gerne ein Array aus Referenzen erzeugen.<br />
Wenn ich das so mache klappt es wunderbar</p>
<pre><code class="language-cpp">int * Array[8];
int * p = new int;
Array[0] = p;
</code></pre>
<p>ich möchte aber gerne die Arraygrösse zur Laufzeit bestimmen<br />
die folgenden Idee funktioniert leider nicht</p>
<pre><code class="language-cpp">int * Array = new int[Knoten];
int * p = new int;
Array [0] = p;
</code></pre>
<p>kann mir jemand einen Tipp geben? Danke schön</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/258356/array-aus-referenzen-erstellen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 10:35:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/258356.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 09 Jan 2010 17:01:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array aus Referenzen erstellen on Sat, 09 Jan 2010 17:01:04 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich möchte gerne ein Array aus Referenzen erzeugen.<br />
Wenn ich das so mache klappt es wunderbar</p>
<pre><code class="language-cpp">int * Array[8];
int * p = new int;
Array[0] = p;
</code></pre>
<p>ich möchte aber gerne die Arraygrösse zur Laufzeit bestimmen<br />
die folgenden Idee funktioniert leider nicht</p>
<pre><code class="language-cpp">int * Array = new int[Knoten];
int * p = new int;
Array [0] = p;
</code></pre>
<p>kann mir jemand einen Tipp geben? Danke schön</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835704</guid><dc:creator><![CDATA[meks-r]]></dc:creator><pubDate>Sat, 09 Jan 2010 17:01:04 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen erstellen on Sat, 09 Jan 2010 17:03:10 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int ** Array = new int*[Knoten];
int * p = new int;
Array [0] = p;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1835707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835707</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Sat, 09 Jan 2010 17:03:10 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen erstellen on Sat, 09 Jan 2010 17:26:02 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::vector&lt;int *&gt; Vektor;
int* p = new int;
Vektor.push_back(p);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1835724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835724</guid><dc:creator><![CDATA[wx++]]></dc:creator><pubDate>Sat, 09 Jan 2010 17:26:02 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen erstellen on Sat, 09 Jan 2010 17:30:16 GMT]]></title><description><![CDATA[<p>Perfekt, danke Dir TyRoXx!!<br />
<a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22486">@wx</a>++ auch nicht schlecht aber der Ansatz von TyRoXx gefällt mir bisschen besser</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835729</guid><dc:creator><![CDATA[meks-r]]></dc:creator><pubDate>Sat, 09 Jan 2010 17:30:16 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen erstellen on Sat, 09 Jan 2010 17:38:52 GMT]]></title><description><![CDATA[<p>Wie wx++ es gezeigt hat, ist es aber in C++ &quot;richtig&quot;.<br />
Beim ersten Beispiel musst du den Speicher von Array später wieder mit delete[] freigeben, mit vector nicht.<br />
Die Größe des vectors kannst du dynamisch anpassen, die des Arrays nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835742</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835742</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Sat, 09 Jan 2010 17:38:52 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen erstellen on Sat, 09 Jan 2010 18:27:44 GMT]]></title><description><![CDATA[<p>meks-r schrieb:</p>
<blockquote>
<p>ich möchte gerne ein Array aus Referenzen erzeugen.</p>
</blockquote>
<p>Der C++ Standard sagt in §1.8 und §3.9 folgendes:</p>
<blockquote>
<p>[...] An object is a region of storage. [Note: A function is not an object regardless of whether or not it occupies storage in the way that objects do.] [...]</p>
<p>[...] There are two kinds of types: fundamental types and compound types. Types describe objects (§1.8), references (§8.3.2), or functions (§8.3.5) [...]</p>
</blockquote>
<p>Array = ein oder mehrere Objekte desselben Typs, die hintereinander im Speicher stehen. Es gibt keine Arrays aus Referenzen, da Referenzen keine Objekt-Typen sind.</p>
<p>meks-r schrieb:</p>
<blockquote>
<p>Wenn ich das so mache klappt es wunderbar</p>
<pre><code class="language-cpp">int * Array[8];
int * p = new int;
Array[0] = p;
</code></pre>
<p>ich möchte aber gerne die Arraygrösse zur Laufzeit bestimmen<br />
die folgenden Idee funktioniert leider nicht</p>
<pre><code class="language-cpp">int * Array = new int[Knoten];
int * p = new int;
Array [0] = p;
</code></pre>
<p>kann mir jemand einen Tipp geben?</p>
</blockquote>
<p>Im zweiten Fall ist Array kein Array sondern vom Typ Zeiger-auf-int. Array[0] dereferenziert diesen Zeiger und Du erhälst einen Lvalue-Ausdruck vom Typ int. Ein int ist aber nicht dazu da, Zeiger zu speichern. Obwohl Dir die weniger elegante Version</p>
<pre><code class="language-cpp">int* * Array = new int*[Knoten];
Array [0] = new int;
...
delete Array[0];
delete[] Array;
</code></pre>
<p>besser gefällt, rate ich Dir dazu, damit nur ein wenig zu experimentieren, bis Du es komplett verstanden hast und dann später folgendes vorzuziehen:</p>
<pre><code class="language-cpp">std::vector&lt;int*&gt; vec;
vec.push_back(new int);
...
delete vec[0];
</code></pre>
<p>Wenn's geht lass das Speichern von Zeigern ganz sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835815</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835815</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sat, 09 Jan 2010 18:27:44 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen erstellen on Sat, 09 Jan 2010 18:33:30 GMT]]></title><description><![CDATA[<p>wieso soll das &quot;richtig&quot; bzw. &quot;richtiger&quot; sein?<br />
nur weil ich mich um den Speicher nicht mehr kümmern muss?<br />
oder Vector als eine Liste verwaltet wird?</p>
<p>es macht mir das leben natürlich einfacher, aber ich sehe nicht was im Hintergrund mit Vector passiert.. deswegen wähle ich lieber die &quot;durchsichtige&quot; Variante</p>
<p>Edit: Ich werde darüber noch mal nachdenken</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835817</guid><dc:creator><![CDATA[meks-r]]></dc:creator><pubDate>Sat, 09 Jan 2010 18:33:30 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen erstellen on Sat, 09 Jan 2010 18:34:49 GMT]]></title><description><![CDATA[<p>Bedauernswert; denn std::vector ist genau das, was Du willst: Ein &quot;Array&quot;, dessen Größe zur Laufzeit festgelegt und geändert werden kann. Es besteht kein Grund, mit new[]/delete[]-Gefrickel anzufangen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835828</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sat, 09 Jan 2010 18:34:49 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen erstellen on Sat, 09 Jan 2010 18:38:41 GMT]]></title><description><![CDATA[<p>das geht ja auch mit der anderen Version. Ich würde dir ja zustimmen wenn ich die größe des Array mehrmals anpassen muss. Bei mir bleibt die Länge des Array allerdings immer gleich (nach dem die Grösse zur Laufzeit ermittelt werden ist).</p>
<p>Wäre das nicht der Fall, so würde ich vector bevorzugen, da ja flexibler!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835832</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835832</guid><dc:creator><![CDATA[meks-r]]></dc:creator><pubDate>Sat, 09 Jan 2010 18:38:41 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen erstellen on Sat, 09 Jan 2010 18:45:57 GMT]]></title><description><![CDATA[<p>Es gibt überhaupt keinen Grund den vector nicht zu benutzen. Er bietet dir GENAU das gleiche was Dir ein array bietet. Wenn Du Dich mal einen Nachmittag damit beschäftigst, ist da auch überhaupt nichts undurchsichtiges dran.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835841</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835841</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Sat, 09 Jan 2010 18:45:57 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen erstellen on Sat, 09 Jan 2010 18:52:06 GMT]]></title><description><![CDATA[<p>ok werde ich machen! wenn mir das jetzt so viele sagen muss ja was dran sein.<br />
danke euch allen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835847</guid><dc:creator><![CDATA[meks-r]]></dc:creator><pubDate>Sat, 09 Jan 2010 18:52:06 GMT</pubDate></item><item><title><![CDATA[Reply to Array aus Referenzen erstellen on Sat, 09 Jan 2010 20:34:22 GMT]]></title><description><![CDATA[<p>meks-r schrieb:</p>
<blockquote>
<p>aber ich sehe nicht was im Hintergrund mit Vector passiert.. deswegen wähle ich lieber die &quot;durchsichtige&quot; Variante</p>
</blockquote>
<p>Wieso verwendest du dann <code>std::cout</code> ? Weisst du, wie das funktioniert? Oder kennst du die Implementierung von <code>new</code> ?</p>
<p>Es ist keine schlechte Idee, von unwichtigen Mittel-zum-Zweck-Details wie manueller Speicherverwaltung zu abstrahieren. Je länger du programmierst, desto mehr wirst du Abstraktion (im Allgemeinen) zu schätzen lernen... <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/1835933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835933</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 09 Jan 2010 20:34:22 GMT</pubDate></item></channel></rss>