<?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[dereferenziert &amp;amp;array[X]?]]></title><description><![CDATA[<p>Hallo,<br />
einfache Frage:</p>
<pre><code class="language-cpp">int array[] = {1, 2, 3, 4};
int const size = 4;

&amp;array[size]; // wird hier eine Dereferenzierung vorgenommen?
// sprich: ist das equivalent zu:
array + size;
// oder nicht?
</code></pre>
<p>Danke!<br />
anon</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/310136/dereferenziert-amp-array-x</link><generator>RSS for Node</generator><lastBuildDate>Tue, 04 Aug 2026 23:26:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/310136.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 04 Nov 2012 17:31:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 17:31:13 GMT]]></title><description><![CDATA[<p>Hallo,<br />
einfache Frage:</p>
<pre><code class="language-cpp">int array[] = {1, 2, 3, 4};
int const size = 4;

&amp;array[size]; // wird hier eine Dereferenzierung vorgenommen?
// sprich: ist das equivalent zu:
array + size;
// oder nicht?
</code></pre>
<p>Danke!<br />
anon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267300</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267300</guid><dc:creator><![CDATA[anon1338]]></dc:creator><pubDate>Sun, 04 Nov 2012 17:31:13 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 17:37:25 GMT]]></title><description><![CDATA[<p>anon1338 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">&amp;array[size]; // wird hier eine Dereferenzierung vorgenommen?
</code></pre>
</blockquote>
<p>Jein.</p>
<p>anon1338 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">// sprich: ist das equivalent zu:
array + size;
// oder nicht?
</code></pre>
</blockquote>
<p>Nein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267302</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267302</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Sun, 04 Nov 2012 17:37:25 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 17:50:22 GMT]]></title><description><![CDATA[<p>. Hier stand Müll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267309</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267309</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 04 Nov 2012 17:50:22 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 17:48:01 GMT]]></title><description><![CDATA[<p><s>Vermutlich wegen der Äquivalenz zu *(array + size).</s><br />
Ich warte Mal ab, wieso das jetzt nicht äquivalent ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267311</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Sun, 04 Nov 2012 17:48:01 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 17:46:24 GMT]]></title><description><![CDATA[<p>Swordfish schrieb:</p>
<blockquote>
<p>anon1338 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">&amp;array[size]; // wird hier eine Dereferenzierung vorgenommen?
</code></pre>
</blockquote>
<p>Jein.</p>
</blockquote>
<p>Kannst du das auch noch ausfuehren? Ist das undefiniertes Verhalten? (zumindest mit dem hier gezeigten Parameter size?)</p>
<p>Swordfish schrieb:</p>
<blockquote>
<p>anon1338 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">// sprich: ist das equivalent zu:
array + size;
// oder nicht?
</code></pre>
</blockquote>
<p>Nein.</p>
</blockquote>
<p>Warum nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267312</guid><dc:creator><![CDATA[anon1338]]></dc:creator><pubDate>Sun, 04 Nov 2012 17:46:24 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 17:52:19 GMT]]></title><description><![CDATA[<p>anon1338 schrieb:</p>
<blockquote>
<p>Swordfish schrieb:</p>
<blockquote>
<p>anon1338 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">&amp;array[size]; // wird hier eine Dereferenzierung vorgenommen?
</code></pre>
</blockquote>
<p>Jein.</p>
</blockquote>
<p>Kannst du das auch noch ausfuehren? Ist das undefiniertes Verhalten? (zumindest mit dem hier gezeigten Parameter size?)</p>
</blockquote>
<p>Ja, das ist undefiniertes Verhalten. Du nimmst hier eine Referenz ( <code>array[size]</code> ohne Adressoperator) auf ein ungültiges Objekt.<br />
Edit: Obwohl... vielleicht auch nicht... ich guck mal im Standard...</p>
<blockquote>
<p>Swordfish schrieb:</p>
<blockquote>
<p>anon1338 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">// sprich: ist das equivalent zu:
array + size;
// oder nicht?
</code></pre>
</blockquote>
<p>Nein.</p>
</blockquote>
<p>Warum nicht?</p>
</blockquote>
<p>Weil du nicht dereferenzierst, das was du da hast ist schließlich &quot;nur&quot; die Adresse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267318</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 04 Nov 2012 17:52:19 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 17:53:59 GMT]]></title><description><![CDATA[<p>Also [4] ist natürlich außerhalb des gültigen Bereichs. Damit ist es wohl undefiniertes Verhalten. Dennoch würde ich sagen, dass array[size] doch einfach *(array + size) entspricht. Und damit entspricht &amp;array[size] eben auch array + size, oder nicht?</p>
<p>Wahrscheinlich wieder so ein Standarddetail, ob irgendwo vorher undefiniertes Verhalten auftritt. Wäre der Index gültig, wären die Ausdrücke jedenfalls äquivalent, wenn ich mich nicht erheblich täusche.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267319</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Sun, 04 Nov 2012 17:53:59 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 18:00:13 GMT]]></title><description><![CDATA[<p>Eisflamme schrieb:</p>
<blockquote>
<p>Also [4] ist natürlich außerhalb des gültigen Bereichs. Damit ist es wohl undefiniertes Verhalten. Dennoch würde ich sagen, dass array[size] doch einfach *(array + size) entspricht. Und damit entspricht &amp;array[size] eben auch array + size, oder nicht?</p>
</blockquote>
<p>Wenn der Compiler ordentlich optimiert, ja. (In diesem Fall dürfte wohl sowieso das ganze Statement ignoriert werden)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267320</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267320</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 04 Nov 2012 18:00:13 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 18:10:03 GMT]]></title><description><![CDATA[<p>Sorry für oben, nicht genau genug geschaut.<br />
Ja, beides dasselbe. Solange du nicht versuchst die sich daraus ergebende Adresse zu dereferenzieren auch nicht UB.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267322</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Sun, 04 Nov 2012 18:10:03 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 18:15:33 GMT]]></title><description><![CDATA[<p>Swordfish schrieb:</p>
<blockquote>
<p>Solange du nicht versuchst die sich daraus ergebende Adresse zu dereferenzieren auch nicht UB.</p>
</blockquote>
<p>Also ist auch <code>array[size]</code> kein UB? Oder ist es nur dank dem Adressoperator irrelevant?</p>
<p>Ich bin mir verdammt sicher, dass das Dereferenzieren eines wilden Pointers UB ist...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267326</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 04 Nov 2012 18:15:33 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 18:26:10 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Also ist auch <code>array[size]</code> kein UB?</p>
</blockquote>
<p>Ich weiß nicht, wie's der Standard damit hält, aber kein Compiler wird bei</p>
<pre><code class="language-cpp">array[ sonstwas ];
</code></pre>
<p>dereferenzieren. Wofür denn auch?</p>
<p>Sone schrieb:</p>
<blockquote>
<p>Oder ist es nur dank dem Adressoperator irrelevant?</p>
</blockquote>
<p>Damit sollte es totsicher sein.</p>
<p>Sone schrieb:</p>
<blockquote>
<p>Ich bin mir verdammt sicher, dass das Dereferenzieren eines wilden Pointers UB ist...</p>
</blockquote>
<p>Wenn du damit etwas wie</p>
<pre><code class="language-cpp">char *ptr = 123;
*ptr = 42;
// oder:
printf( &quot;%d&quot;, *ptr );
</code></pre>
<p>meinst, ja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267333</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Sun, 04 Nov 2012 18:26:10 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 18:40:07 GMT]]></title><description><![CDATA[<p>Nein, ich meine gerade <strong>generell</strong>, sowas wie</p>
<pre><code class="language-cpp">int arr[] = {1,2};
std::cout &lt;&lt; arr[2];//Dereferenzierung eines wilden Zeigers
</code></pre>
<p>Und nicht das Beispiel von vorhin, klar dass das sowieso wegoptimiert wird <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267337</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267337</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 04 Nov 2012 18:40:07 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 19:11:36 GMT]]></title><description><![CDATA[<p>Ist dasselbe wie bei mir. <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/2267362</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267362</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Sun, 04 Nov 2012 19:11:36 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 19:23:28 GMT]]></title><description><![CDATA[<p><code>&amp;array[size]</code> ist OK, dafür gibt's ne extra Ausnahme im Standard. Ohne die könnte man keine halb-offenen Zeiger Intervalle bilden, und das wäre ziemlich lästig.</p>
<p><code>&amp;array[size + 1]</code> ist nicht OK, weil man - abgesehen von der &quot;one past last element&quot; Ausnahme oben und NULL - nur Zeiger auf gültige Objekte bilden darf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267371</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 04 Nov 2012 19:23:28 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 19:28:36 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p><code>&amp;array[size]</code> ist OK, dafür gibt's ne extra Ausnahme im Standard. Ohne die könnte man keine halb-offenen Zeiger Intervalle bilden, und das wäre ziemlich lästig.</p>
</blockquote>
<p>Könnte man schon, doch eben durch <code>array + size</code> , aber du hast recht.</p>
<p>hustbaer schrieb:</p>
<blockquote>
<p><code>&amp;array[size + 1]</code> ist nicht OK, weil man - abgesehen von der &quot;one past last element&quot; Ausnahme oben und NULL - nur Zeiger auf gültige Objekte bilden darf.</p>
</blockquote>
<p>Das leuchtet ein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267377</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 04 Nov 2012 19:28:36 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 19:31:05 GMT]]></title><description><![CDATA[<p>Könntest du noch die entsprechenden Zitate bringen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267380</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267380</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 04 Nov 2012 19:31:05 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 19:38:04 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p><code>&amp;array[size]</code> ist OK, dafür gibt's ne extra Ausnahme im Standard. Ohne die könnte man keine halb-offenen Zeiger Intervalle bilden, und das wäre ziemlich lästig.</p>
</blockquote>
<p>Könnte man schon, doch eben durch <code>array + size</code> , aber du hast recht.</p>
</blockquote>
<p>Mah h4x0r, du klugscheißen-ohne-nachdenken-Mensch, für dein &quot;könnte man doch&quot; gilt die selbe Ausnahme. Und würd's die von hustbaer erwähnte Ausnahme nicht geben wär deins genauso Standardwidrig. <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/2267385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267385</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Sun, 04 Nov 2012 19:38:04 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 19:54:07 GMT]]></title><description><![CDATA[<p>Swordfish schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p><code>&amp;array[size]</code> ist OK, dafür gibt's ne extra Ausnahme im Standard. Ohne die könnte man keine halb-offenen Zeiger Intervalle bilden, und das wäre ziemlich lästig.</p>
</blockquote>
<p>Könnte man schon, doch eben durch <code>array + size</code> , aber du hast recht.</p>
</blockquote>
<p>Mah h4x0r, du klugscheißen-ohne-nachdenken-Mensch, für dein &quot;könnte man doch&quot; gilt die selbe Ausnahme. Und würd's die von hustbaer erwähnte Ausnahme nicht geben wär deins genauso Standardwidrig. <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>
</blockquote>
<p>Wieso zum Teufel ist array + size UB ohne Ausnahme!? Das ist doch einfach ein erhöhter Zeiger.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267400</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267400</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 04 Nov 2012 19:54:07 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 19:55:58 GMT]]></title><description><![CDATA[<p>Du hast doch selbst gesagt, es leuchte ein, dass <code>&amp;array[size + 1]</code> nicht erlaubt ist -- und das ist das selbe wie <code>array + size + 1</code></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267401</guid><dc:creator><![CDATA[ubububububububub]]></dc:creator><pubDate>Sun, 04 Nov 2012 19:55:58 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 20:00:22 GMT]]></title><description><![CDATA[<p>ubububububububub schrieb:</p>
<blockquote>
<p>Du hast doch selbst gesagt, es leuchte ein, dass <code>&amp;array[size + 1]</code> nicht erlaubt ist -- und das ist das selbe wie <code>array + size + 1</code></p>
</blockquote>
<p>Nicht direkt.<br />
&amp;array[size + 1] ist laut Standard dasselbe wie &amp;(*(array + (size + 1))). Und da steckt halt die Dereferenzierung eines wilden Pointers drinnen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267404</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 04 Nov 2012 20:00:22 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 20:05:21 GMT]]></title><description><![CDATA[<p>Ich bin ziemlich sicher, dass der Standard keine &quot;wilden Zeiger&quot; kennt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267406</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sun, 04 Nov 2012 20:05:21 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 20:07:42 GMT]]></title><description><![CDATA[<p>Swordfish schrieb:</p>
<blockquote>
<p>Ich weiß nicht, wie's der Standard damit hält, aber kein Compiler wird bei</p>
<pre><code class="language-cpp">array[ sonstwas ];
</code></pre>
<p>dereferenzieren. Wofür denn auch?</p>
</blockquote>
<p>Um auf das Element zuzugreifen. <code>array[index]</code> ist nur eine andere Schreibweise für <code>*(array+index)</code> .</p>
<p>Bisher hat niemand ein Argument dafür geliefert, warum es dem Compiler <strong>verboten</strong> sei, bei <code>&amp;array[index]</code> zu dereferenzieren. Das kann nämlich selbst bei gültigem Index eine Rolle spielen.</p>
<p>Sone schrieb:</p>
<blockquote>
<p>&amp;array[size + 1] ist laut Standard dasselbe wie &amp;(*(array + (size + 1))). Und da steckt halt die Dereferenzierung eines wilden Pointers drinnen.</p>
</blockquote>
<p>Nicht nur die Dereferenzierung, auch das Lesen eines Zeigers jenseits des Arrays ist UB -- bis auf die von hustbaer genannte Ausnahme.</p>
<p>&lt; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /> &gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267409</guid><dc:creator><![CDATA[glühbirne]]></dc:creator><pubDate>Sun, 04 Nov 2012 20:07:42 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 20:10:51 GMT]]></title><description><![CDATA[<p>glühbirne schrieb:</p>
<blockquote>
<p>Swordfish schrieb:</p>
<blockquote>
<p>Ich weiß nicht, wie's der Standard damit hält, aber kein Compiler wird bei</p>
<pre><code class="language-cpp">array[ sonstwas ];
</code></pre>
<p>dereferenzieren. Wofür denn auch?</p>
</blockquote>
<p>Um auf das Element zuzugreifen. <code>array[index]</code> ist nur eine andere Schreibweise für <code>*(array+index)</code> .</p>
</blockquote>
<p>Du hast nichts verstanden. Eine Anweisung wie diese hat keinen Effekt, weil sie überhaupt nichts tut. Es gibt keine Berechnung o. ä., für die der Dereferenzierte Wert gebraucht wird. Es wird einfach rausoptimiert, alles andere wäre Wahnsinn.</p>
<p>glühbirne schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>&amp;array[size + 1] ist laut Standard dasselbe wie &amp;(*(array + (size + 1))). Und da steckt halt die Dereferenzierung eines wilden Pointers drinnen.</p>
</blockquote>
<p>Nicht nur die Dereferenzierung, auch das Lesen eines Zeigers jenseits des Arrays ist UB -- bis auf die von hustbaer genannte Ausnahme.</p>
</blockquote>
<p>Danke <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="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267411</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 04 Nov 2012 20:10:51 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 20:13:56 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Du hast nichts verstanden. Eine Anweisung wie diese hat keinen Effekt, weil sie überhaupt nichts tut. Es gibt keine Berechnung o. ä., für die der Dereferenzierte Wert gebraucht wird. Es wird einfach rausoptimiert, alles andere wäre Wahnsinn.</p>
</blockquote>
<p>Ne, wie üblich hast du nichts verstanden.</p>
<p>So eine Optimierung ist Qualität der Implementierung, der C++-Standard schreibt sie nicht vor.</p>
<p>&lt; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /> &gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267413</guid><dc:creator><![CDATA[glühbirne]]></dc:creator><pubDate>Sun, 04 Nov 2012 20:13:56 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 20:17:39 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>&amp;array[size + 1] ist nicht OK, weil man - abgesehen von der &quot;one past last element&quot; Ausnahme oben und NULL - nur Zeiger auf gültige Objekte bilden darf.</p>
</blockquote>
<p>Moment, das würde ja heißen, dass dieses Programm eigentlich nicht standardkonform wäre <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    />:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;ostream&gt;
int main()
{
  int const* const Zgr_F = reinterpret_cast&lt;int*&gt;(0x0); //Var. 1
  int const* const Zgr_W = reinterpret_cast&lt;int*&gt;(0xF2A911E); //Var. 2
    //So, beide Zeiger dürften ins Nichts zeigen
  int const Y = 20;
  int const* Zgr_M = &amp;Y + 7372; //Var. 3
    //Und auch dieser zeigt wohl irgendwohin
  std::cout &lt;&lt; Zgr_F &lt;&lt; Zgr_W &lt;&lt; Zgr_M &lt;&lt; std::endl;
    //Gegen das Wegoptimieren
}
</code></pre>
<p>Ich hoffe jetzt mal, dass hattest du irgendwie anders gemeint …</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267420</guid><dc:creator><![CDATA[Fast2_unreg]]></dc:creator><pubDate>Sun, 04 Nov 2012 20:17:39 GMT</pubDate></item><item><title><![CDATA[Reply to dereferenziert &amp;amp;array[X]? on Sun, 04 Nov 2012 20:20:41 GMT]]></title><description><![CDATA[<p>Eben, genau das hab ich mich auch gefragt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2267423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2267423</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 04 Nov 2012 20:20:41 GMT</pubDate></item></channel></rss>