<?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[Pointer auf Array]]></title><description><![CDATA[<p>Hi,</p>
<p>Erstmal mein Code:</p>
<pre><code class="language-cpp">int rInt[5];
	int *pInt = &amp;rInt[0];
	cout &lt;&lt; *pInt;
</code></pre>
<p>Eigentlich wollte ich *pInt auf den ersten Eintrag von rInt zeigen.<br />
Die Ausgabe ist aber -858993460 und nicht wie erwartet 0. Woran liegt das nun? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/193834/pointer-auf-array</link><generator>RSS for Node</generator><lastBuildDate>Mon, 28 Sep 2026 07:28:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/193834.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 30 Sep 2007 17:15:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pointer auf Array on Sun, 30 Sep 2007 17:15:22 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Erstmal mein Code:</p>
<pre><code class="language-cpp">int rInt[5];
	int *pInt = &amp;rInt[0];
	cout &lt;&lt; *pInt;
</code></pre>
<p>Eigentlich wollte ich *pInt auf den ersten Eintrag von rInt zeigen.<br />
Die Ausgabe ist aber -858993460 und nicht wie erwartet 0. Woran liegt das nun? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1375465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1375465</guid><dc:creator><![CDATA[notebook]]></dc:creator><pubDate>Sun, 30 Sep 2007 17:15:22 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Array on Sun, 30 Sep 2007 17:32:17 GMT]]></title><description><![CDATA[<p>int k[5];</p>
<p>int *p = k;</p>
<p><div class="plugin-markdown"><input type="checkbox" id="checkbox37342" checked="true" /><label for="checkbox37342">dereferenziest du auf den werd an der stelle [x];</label></div></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1375478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1375478</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Sun, 30 Sep 2007 17:32:17 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Array on Sun, 30 Sep 2007 17:33:35 GMT]]></title><description><![CDATA[<p>Das Array wird nicht automatisch null-initialisiert. Mit</p>
<pre><code class="language-cpp">int rInt[5] = { 0 };
</code></pre>
<p>sollte es gehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1375480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1375480</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Sun, 30 Sep 2007 17:33:35 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Array on Sun, 30 Sep 2007 17:34:04 GMT]]></title><description><![CDATA[<p>notebook schrieb:</p>
<blockquote>
<p>Die Ausgabe ist aber -858993460 und nicht wie erwartet 0. Woran liegt das nun? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>vielleicht solltest du dein array mal initialisieren <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/1375481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1375481</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Sun, 30 Sep 2007 17:34:04 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Array on Sun, 30 Sep 2007 17:55:07 GMT]]></title><description><![CDATA[<p>Danke, mit</p>
<pre><code class="language-cpp">int* p = &amp;r[0];
</code></pre>
<p>funktioniert es, wenn r vorher initialisiert wurde.</p>
<p>Was ich nicht verstehe.. wenn ich einen Vektor erstelle..:</p>
<pre><code class="language-cpp">vector&lt;int&gt; v(1);
</code></pre>
<p>.. dann ist</p>
<pre><code class="language-cpp">v.at(0)
</code></pre>
<p>ja auch automatisch mit <em>0</em> initialisiert worden. Warum ist das beim Array nicht auch einfach so der Fall?</p>
<p>Und noch was..</p>
<pre><code class="language-cpp">int* p = r; // und
int* p = &amp;r[0];
</code></pre>
<p>sind identisch. Die 2. Zeile verstehe ich auch, aber wie kommt man auf die erste? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1375500</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1375500</guid><dc:creator><![CDATA[notebook]]></dc:creator><pubDate>Sun, 30 Sep 2007 17:55:07 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Array on Sun, 30 Sep 2007 18:37:25 GMT]]></title><description><![CDATA[<p>Wenn ich mich recht erinnere (man möge mich korrigieren):</p>
<pre><code class="language-cpp">int foo; // &lt;- Reserviert lediglich Speicher (auf dem Stack) für ein int-Objekt.
int foo[2]; // &lt;- Dto eben für zwei int-Objekte, wobei foo ein Zeiger auf das erste int-Objekt ist.
</code></pre>
<p>Die Betonung liegt hier auf <strong>Reservierung</strong>. Die Speicherbereiche sind allesamt nicht initialisiert (sprich: Es wird kein Wert zugewiesen, ein Zugriff liefert nur das zutage, was sich zufällig gerade dort befindet).</p>
<p>Letzeres gilt jedoch nur für die &quot;builtin-typen&quot;. Bei eigenen Typen (Klassen) wird der Default-Konstruktor aufgerufen:</p>
<pre><code class="language-cpp">MyClass foo[4]; // &lt;- vier mal wird der Default-Ctor aufgerufen, die Objekte liegen auf dem Stack.
    // foo ist ein Zeiger auf das erste MyClass-Objekt.
</code></pre>
<pre><code class="language-cpp">int* foo = new int[2]; // &lt;- Reserviert Speicher für zwei int-Objekte auf dem Heap und
    // erzeugt zwei neue int-Objekte (Aufruf des Default-Konstruktors).
</code></pre>
<p>Die Speicherreservierung auf dem Heap ist genau das, was im Inneren des <em>std::vector</em>s erfolgt.</p>
<pre><code class="language-cpp">int *foo = &amp;bar[0]; // &lt;- Ist gleichbedeutend mit:
int* foo = &amp;bar;
</code></pre>
<p>wobei <em>&amp;bar[n] == &amp;bar + sizeof(type) * n</em> ist.</p>
<p>Grüße...</p>
<p>Heiko</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1375527</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1375527</guid><dc:creator><![CDATA[bwbg]]></dc:creator><pubDate>Sun, 30 Sep 2007 18:37:25 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Array on Sun, 30 Sep 2007 19:33:46 GMT]]></title><description><![CDATA[<blockquote>
<pre><code class="language-cpp">int *foo = &amp;bar[0]; // &lt;- Ist gleichbedeutend mit:
int* foo = &amp;bar;
</code></pre>
<p>wobei <em>&amp;bar[n] == &amp;bar + sizeof(type) * n</em> ist.</p>
</blockquote>
<p>Du meinst wohl..</p>
<blockquote>
<pre><code class="language-cpp">int *foo = &amp;bar[0]; // &lt;- Ist gleichbedeutend mit:
int* foo = bar;
</code></pre>
<p>wobei <em>&amp;bar[n] = bar + sizeof(type) * n</em> ist.</p>
</blockquote>
<p>oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1375550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1375550</guid><dc:creator><![CDATA[notebook]]></dc:creator><pubDate>Sun, 30 Sep 2007 19:33:46 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Array on Mon, 01 Oct 2007 04:04:06 GMT]]></title><description><![CDATA[<p>ja meinte er</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1375634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1375634</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Mon, 01 Oct 2007 04:04:06 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Array on Mon, 01 Oct 2007 05:42:32 GMT]]></title><description><![CDATA[<p>bwbg schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int* foo = new int[2]; // &lt;- Reserviert Speicher für zwei int-Objekte auf dem Heap und
    // erzeugt zwei neue int-Objekte (Aufruf des Default-Konstruktors).
</code></pre>
</blockquote>
<p>Nicht ganz, auch hier wird nicht Initialisiert. Man kann die Defaultinitialisierung aber erzwingen:</p>
<pre><code class="language-cpp">int* foo = new int[2] ();
</code></pre>
<blockquote>
<p>wobei <em>&amp;bar[n] == &amp;bar + sizeof(type) * n</em> ist.</p>
</blockquote>
<p>Die Zeigerarithmetik berücksichtigt die Objektgröße bereits!<br />
<em>&amp;bar[n] == bar + n</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1375645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1375645</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 01 Oct 2007 05:42:32 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Array on Mon, 01 Oct 2007 05:58:43 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>bwbg schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int* foo = new int[2]; // &lt;- Reserviert Speicher für zwei int-Objekte auf dem Heap und
    // erzeugt zwei neue int-Objekte (Aufruf des Default-Konstruktors).
</code></pre>
</blockquote>
<p>Nicht ganz, auch hier wird nicht Initialisiert. Man kann die Defaultinitialisierung aber erzwingen:</p>
<pre><code class="language-cpp">int* foo = new int[2] ();
</code></pre>
</blockquote>
<p>Wusste ich bis dato auch nicht, werde mir das aber mal aneignen. Diese Beispiel hatte ich zuvor ausprobiert und es wurden alle Elemente des Arrays (hier int) mit 0 initialisiert. Lediglich auf dem Stack wurden diese nicht initialisiert.</p>
<p>LordJaxom schrieb:</p>
<blockquote>
<blockquote>
<p>wobei <em>&amp;bar[n] == &amp;bar + sizeof(type) * n</em> ist.</p>
</blockquote>
<p>Die Zeigerarithmetik berücksichtigt die Objektgröße bereits!<br />
<em>&amp;bar[n] == bar + n</em></p>
</blockquote>
<p>Das wollte ich nur noch einmal verdeutlichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1375654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1375654</guid><dc:creator><![CDATA[bwbg]]></dc:creator><pubDate>Mon, 01 Oct 2007 05:58:43 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Array on Mon, 01 Oct 2007 06:01:22 GMT]]></title><description><![CDATA[<p>bwbg schrieb:</p>
<blockquote>
<p>Wusste ich bis dato auch nicht, werde mir das aber mal aneignen. Diese Beispiel hatte ich zuvor ausprobiert und es wurden alle Elemente des Arrays (hier int) mit 0 initialisiert. Lediglich auf dem Stack wurden diese nicht initialisiert.</p>
</blockquote>
<p>Diese Beobachtung habe ich bei manchen Compilern auch gemacht. Bei anderen jedoch nicht (wobei verschiedene GCCs und MSVCs als Grundlage dienten), und wenn ich den Standard richtig interpretiere darf man sich auch nicht darauf verlassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1375656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1375656</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 01 Oct 2007 06:01:22 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf Array on Mon, 01 Oct 2007 10:33:52 GMT]]></title><description><![CDATA[<p>Vielen Danke an alle! Ihr habt mir wieder sehr weitergeholfen! <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="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1375843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1375843</guid><dc:creator><![CDATA[notebook]]></dc:creator><pubDate>Mon, 01 Oct 2007 10:33:52 GMT</pubDate></item></channel></rss>