<?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[Absolute Anfängerfrage - Array und Zeiger]]></title><description><![CDATA[<p>Einfacher Quellcode:</p>
<pre><code>int main() {
     float * a[3];
     float x1[] = {1.0, 2.0, 3.0};
     float x2[] = {4.0, 5.0, 6.0};
     float x3[] = {7.0, 8.0, 9.0};

     a[0] = x1;
     a[1] = x2;
     a[2] = x3;

     std::cout &lt;&lt; &quot;x1[0]: &quot; &lt;&lt; a[0][0] &lt;&lt; std::endl;
     std::cout &lt;&lt; &quot;x2[1]: &quot; &lt;&lt; a[1][1] &lt;&lt; std::endl;
     std::cout &lt;&lt; &quot;x3[2]: &quot; &lt;&lt; a[2][2] &lt;&lt; std::endl;

return 0;
}
</code></pre>
<p>Ich dachte, in beispielsweise a[0] sei nun die Adresse von x1 (sprich dem ersten Element des Arrays) gespeichert. Ich habe auf den Wert mit *a[0] zugegriffen.</p>
<p>Wieso wird hier mit mehrdimensionalen Arrays gearbeitet, um an die Werte zu gelangen? Wie funktioniert das?</p>
<p>Danke für eure Hilfe :).</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/322840/absolute-anfängerfrage-array-und-zeiger</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Jul 2026 15:43:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/322840.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 09 Jan 2014 10:26:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Absolute Anfängerfrage - Array und Zeiger on Thu, 09 Jan 2014 10:26:06 GMT]]></title><description><![CDATA[<p>Einfacher Quellcode:</p>
<pre><code>int main() {
     float * a[3];
     float x1[] = {1.0, 2.0, 3.0};
     float x2[] = {4.0, 5.0, 6.0};
     float x3[] = {7.0, 8.0, 9.0};

     a[0] = x1;
     a[1] = x2;
     a[2] = x3;

     std::cout &lt;&lt; &quot;x1[0]: &quot; &lt;&lt; a[0][0] &lt;&lt; std::endl;
     std::cout &lt;&lt; &quot;x2[1]: &quot; &lt;&lt; a[1][1] &lt;&lt; std::endl;
     std::cout &lt;&lt; &quot;x3[2]: &quot; &lt;&lt; a[2][2] &lt;&lt; std::endl;

return 0;
}
</code></pre>
<p>Ich dachte, in beispielsweise a[0] sei nun die Adresse von x1 (sprich dem ersten Element des Arrays) gespeichert. Ich habe auf den Wert mit *a[0] zugegriffen.</p>
<p>Wieso wird hier mit mehrdimensionalen Arrays gearbeitet, um an die Werte zu gelangen? Wie funktioniert das?</p>
<p>Danke für eure Hilfe :).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2376131</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376131</guid><dc:creator><![CDATA[Salia7]]></dc:creator><pubDate>Thu, 09 Jan 2014 10:26:06 GMT</pubDate></item><item><title><![CDATA[Reply to Absolute Anfängerfrage - Array und Zeiger on Thu, 09 Jan 2014 10:37:13 GMT]]></title><description><![CDATA[<p>wieso es gemacht wird? ka, das ist ja nichtmal ein richtiges programm...<br />
wie es funktioniert? hast du doch selbst beschrieben.</p>
<p>wenn du wirklich c++ lernen willst, dann mach es bitte korrekt. das was du da hier gepostet hast hat einen speicheroverhead von <code>x * sizeof(float*)</code> und du musst, wenn du an einen wert gelangen willst, zwei mal dereferenzieren. in c++ würde man - je nach anwendungsfall - entweder einfach ein 1d-array ( <code>std::vector</code> &amp; <code>std::array</code> ) so behandeln als wäre es 2d oder man würde sich eine klasse schreiben, die das übernimmt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2376137</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376137</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Thu, 09 Jan 2014 10:37:13 GMT</pubDate></item><item><title><![CDATA[Reply to Absolute Anfängerfrage - Array und Zeiger on Thu, 09 Jan 2014 10:45:24 GMT]]></title><description><![CDATA[<p>Ob du x1[1] schreibst oder *(x1+1) ist völlig egal (Der Compiler wandelt für sich die Arrayschreibweise in die Zeigerschreibweise um)<br />
Von daher entspricht ein Arrayzugriff einer Dereferenzierung vom Zeiger.</p>
<pre><code>a[0][0] ist *(a[0] + 0) = *a[0]
</code></pre>
<p>Salia7  schrieb:</p>
<blockquote>
<p>Ich dachte, in beispielsweise a[0] sei nun die Adresse von x1 (sprich dem ersten Element des Arrays) gespeichert.</p>
</blockquote>
<p>Stimmt ja auch.</p>
<p>Salia7  schrieb:</p>
<blockquote>
<p>Wieso wird hier mit mehrdimensionalen Arrays gearbeitet,</p>
</blockquote>
<p>Hier wird <strong>nicht</strong> mit mehrdimensionalen Arrays gearbeitet.<br />
Das sieht nur so aus.</p>
<p>Hier wird mit Zeigerarrays gearbeitet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2376139</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376139</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Thu, 09 Jan 2014 10:45:24 GMT</pubDate></item><item><title><![CDATA[Reply to Absolute Anfängerfrage - Array und Zeiger on Thu, 09 Jan 2014 11:23:43 GMT]]></title><description><![CDATA[<p>Danke Dirk B, das hat mir sehr geholfen :).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2376146</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376146</guid><dc:creator><![CDATA[Salia 7]]></dc:creator><pubDate>Thu, 09 Jan 2014 11:23:43 GMT</pubDate></item><item><title><![CDATA[Reply to Absolute Anfängerfrage - Array und Zeiger on Thu, 09 Jan 2014 11:41:42 GMT]]></title><description><![CDATA[<p>Zur Klarstellung:</p>
<p>Ein echtes Array <code>float mat[3][3];</code> ist <strong>ein</strong> zusammenhängender <strong>Speicherbereich</strong>, dessen Größe und Lage nicht mehr verändert werden kann.<br />
Der Speicherbedarf ist (hier) <em>3*3*sizeof(float)</em></p>
<p>In deinem Beispiel sind das vier Speicherbereiche (a0, x1, x2, x3)<br />
a0 ist ein Array von Zeigern auf float.<br />
Der Speicherbedarf ist <em>3*sizeof(float*)+3</em>(3<em>sizeof(float))</em></p>
<p>Hier kannst du jederzeit die Zeiger in a0 austauschen. Auch gegen längere Arrays.<br />
Wenn du a3 als <code>float **a3</code> definierst und dafür den Speicher auch dynamisch anforderst, kannst du auch die (Zeilen-)Anzahl verändern.<br />
Aber das ist mehr C-like und nutzt nicht die Möglichkeiten, die dir C++ bietet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2376149</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376149</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Thu, 09 Jan 2014 11:41:42 GMT</pubDate></item><item><title><![CDATA[Reply to Absolute Anfängerfrage - Array und Zeiger on Thu, 09 Jan 2014 13:31:25 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
Tausendfachen Dank, sehr gut erklärt!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2376182</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2376182</guid><dc:creator><![CDATA[Salia 7]]></dc:creator><pubDate>Thu, 09 Jan 2014 13:31:25 GMT</pubDate></item></channel></rss>