<?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[Frage zum Array]]></title><description><![CDATA[<p>Hallo ich hab in einem Beispiel gesehen das dieser Code falsch sein soll.<br />
Aber ich weiss nicht was hier schlecht sein soll. Der Code funktioniert bei mir ohne Probleme oder ist da irgendwo ein undefiniertes Verhalten und ich habe gerade nur Glück?</p>
<pre><code class="language-cpp">int a[10];
int *p = &amp;a[9];

*p = 11;
cout&lt;&lt;&quot;p: &quot;&lt;&lt;*p&lt;&lt;endl;

a[10]=12;

cout&lt;&lt;a[10]&lt;&lt;endl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/300964/frage-zum-array</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 11:32:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/300964.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 15 Mar 2012 08:29:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zum Array on Thu, 15 Mar 2012 08:29:52 GMT]]></title><description><![CDATA[<p>Hallo ich hab in einem Beispiel gesehen das dieser Code falsch sein soll.<br />
Aber ich weiss nicht was hier schlecht sein soll. Der Code funktioniert bei mir ohne Probleme oder ist da irgendwo ein undefiniertes Verhalten und ich habe gerade nur Glück?</p>
<pre><code class="language-cpp">int a[10];
int *p = &amp;a[9];

*p = 11;
cout&lt;&lt;&quot;p: &quot;&lt;&lt;*p&lt;&lt;endl;

a[10]=12;

cout&lt;&lt;a[10]&lt;&lt;endl;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2191808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191808</guid><dc:creator><![CDATA[ABC_]]></dc:creator><pubDate>Thu, 15 Mar 2012 08:29:52 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Array on Thu, 15 Mar 2012 08:39:16 GMT]]></title><description><![CDATA[<p>ABC_ schrieb:</p>
<blockquote>
<p>[...]oder ist da irgendwo ein undefiniertes Verhalten und ich habe gerade nur Glück?</p>
</blockquote>
<p>Nein, Du hast Pech: Ein <code>int[10]</code> hat zugreifbare Indizes von 0..9. Wenn es es beim Zugriff auf das nicht vorhandene 11te Element nicht kracht, ist es eher Pech als Glück, weil Du nicht merkst, dass Du Mist baust.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191813</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191813</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Thu, 15 Mar 2012 08:39:16 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Array on Thu, 15 Mar 2012 09:08:09 GMT]]></title><description><![CDATA[<p>So mal schauen ob ich es verstanden habe:</p>
<pre><code class="language-cpp">int a[10];  // Legen die Elemente 0 1 2 3 4 5 6 7 8 9 an.

int *p = &amp;a[9]; 

 *p = 11; // Ich schreibe an Element 9 aus dem Array a die Zahl 11
 cout&lt;&lt;&quot;p: &quot;&lt;&lt;*p&lt;&lt;endl; // Ich gebe den Wert aus der im Array a an Element 9 steht

 a[10]=12; // Ich greife auf Element 10 zu und weise Element 10 den Wert 12 zu FEHLER den der indiz geht nur von 0 bis 9 ( von 0 bis 9 ist 10 )

 cout&lt;&lt;a[10]&lt;&lt;endl;
</code></pre>
<p>Kann man das so beschreiben?</p>
<p>Ich dachte halt wenn ich schreibe int a[10]; das die Element von 0 bis 10 gehen. 0 1 2 3 4 5 6 7 8 9 10 da hab ich mich wohl getäuscht ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191820</guid><dc:creator><![CDATA[ABC_]]></dc:creator><pubDate>Thu, 15 Mar 2012 09:08:09 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Array on Thu, 15 Mar 2012 09:15:55 GMT]]></title><description><![CDATA[<p>Sieht richtig aus, nur dass es strenggenommen kein Fehler, sondern undefiniertes Verhalten ist.<br />
Gib dir doch mal den Zahlenwert von p vor und nach dem Schreiben an a[10] aus:</p>
<pre><code class="language-cpp">cout &lt;&lt; p &lt;&lt; endl;  
  a[10]=12;   
  cout&lt;&lt;a[10]&lt;&lt;endl; 
  cout &lt;&lt; p &lt;&lt; endl;
</code></pre>
<p>Bei den Code den die meisten Compiler aus deinem Programm erzeugen dürftest du da einen Unterschied feststellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191824</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191824</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 15 Mar 2012 09:15:55 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Array on Thu, 15 Mar 2012 11:49:25 GMT]]></title><description><![CDATA[<p>ABC_ schrieb:</p>
<blockquote>
<p>So mal schauen ob ich es verstanden habe:</p>
<pre><code class="language-cpp">int a[10];  // Legen die Elemente 0 1 2 3 4 5 6 7 8 9 an.

int *p = &amp;a[9]; 

 *p = 11; // Ich schreibe an Element 9 aus dem Array a die Zahl 11
 cout&lt;&lt;&quot;p: &quot;&lt;&lt;*p&lt;&lt;endl; // Ich gebe den Wert aus der im Array a an Element 9 steht

 a[10]=12; // Ich greife auf Element 10 zu und weise Element 10 den Wert 12 zu FEHLER den der indiz geht nur von 0 bis 9 ( von 0 bis 9 ist 10 )

 cout&lt;&lt;a[10]&lt;&lt;endl;
</code></pre>
<p>Kann man das so beschreiben?</p>
<p>Ich dachte halt wenn ich schreibe int a[10]; das die Element von 0 bis 10 gehen. 0 1 2 3 4 5 6 7 8 9 10 da hab ich mich wohl getäuscht ...</p>
</blockquote>
<p>Richtig: Bei der Arraydefinition gibt man/frau an, <strong>wieviele</strong> Elemente (n) das Array enthalten soll. Der <strong>maximal</strong> mögliche Index ist dann <strong>immer</strong> n-1, da das erste Element den Index 0 hat.</p>
<p>mfg Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191858</guid><dc:creator><![CDATA[mgaeckler]]></dc:creator><pubDate>Thu, 15 Mar 2012 11:49:25 GMT</pubDate></item></channel></rss>