<?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[Blackout beim Array]]></title><description><![CDATA[<p>Hallo,</p>
<p>Eigentlich nichts schwieriges, würde ich sagen. Ich komme bloß im Moment nicht drauf und finde auch in den Foren und Tutorials keine Lösung.</p>
<p>Ich erstelle in Integer-Array</p>
<pre><code class="language-cpp">int _werte[]={3,5};
</code></pre>
<p>und weise ihm zwei Felder zu.</p>
<p>Nun brauche ich die Werte für eine Funktion innerhalb einer Schleife.<br />
Also muß die Schleife die Anzahl der Felder des Arrays kennen.</p>
<p>Ich weiß aber nicht mehr wie? <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="😞"
    /><br />
Mit</p>
<pre><code class="language-cpp">sizeof(_werte)
</code></pre>
<p>kriege ich 8 (also eine Addition der Felder)!</p>
<p>Hat jemand da evtl. mal schnell ne Anregung?<br />
Kleine Anmerkung noch: Die Anzahl der Felder kann variieren! Kann also nicht einfach sagen, daß es zwei Felder sind...<br />
Danke im Voraus<br />
Arne</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/217207/blackout-beim-array</link><generator>RSS for Node</generator><lastBuildDate>Sat, 10 Oct 2026 18:55:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/217207.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 04 Jul 2008 13:45:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Blackout beim Array on Fri, 04 Jul 2008 13:45:07 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Eigentlich nichts schwieriges, würde ich sagen. Ich komme bloß im Moment nicht drauf und finde auch in den Foren und Tutorials keine Lösung.</p>
<p>Ich erstelle in Integer-Array</p>
<pre><code class="language-cpp">int _werte[]={3,5};
</code></pre>
<p>und weise ihm zwei Felder zu.</p>
<p>Nun brauche ich die Werte für eine Funktion innerhalb einer Schleife.<br />
Also muß die Schleife die Anzahl der Felder des Arrays kennen.</p>
<p>Ich weiß aber nicht mehr wie? <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="😞"
    /><br />
Mit</p>
<pre><code class="language-cpp">sizeof(_werte)
</code></pre>
<p>kriege ich 8 (also eine Addition der Felder)!</p>
<p>Hat jemand da evtl. mal schnell ne Anregung?<br />
Kleine Anmerkung noch: Die Anzahl der Felder kann variieren! Kann also nicht einfach sagen, daß es zwei Felder sind...<br />
Danke im Voraus<br />
Arne</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1541044</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1541044</guid><dc:creator><![CDATA[arnedrews]]></dc:creator><pubDate>Fri, 04 Jul 2008 13:45:07 GMT</pubDate></item><item><title><![CDATA[Reply to Blackout beim Array on Fri, 04 Jul 2008 13:53:12 GMT]]></title><description><![CDATA[<p>Entweder so:</p>
<pre><code class="language-cpp">void myFunction(int* data, size_t size)
{
   for(size_t n = 0; n != size; ++n)
   {
      //...
   }
}
</code></pre>
<p>oder so:</p>
<pre><code class="language-cpp">void myFunction(int data[N]) //N hat feste, konstante Groesse...
{
   for(size_t n = 0; n != (sizeof(data)/sizeof(*data)); ++n)
   {
      //...
   }
}
</code></pre>
<p>oder so (mein Favorit):</p>
<pre><code class="language-cpp">void myFunction(std::vector&lt;int&gt;&amp; data)
{

   for(std::vector&lt;int&gt;::iterator iter = data.begin(); iter != data.end(); ++iter)
   {
      //...
   }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1541046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1541046</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 04 Jul 2008 13:53:12 GMT</pubDate></item><item><title><![CDATA[Reply to Blackout beim Array on Fri, 04 Jul 2008 13:53:47 GMT]]></title><description><![CDATA[<blockquote>
<p>sizeof(_werte)/sizeof(int)</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1541047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1541047</guid><dc:creator><![CDATA[Babbage]]></dc:creator><pubDate>Fri, 04 Jul 2008 13:53:47 GMT</pubDate></item><item><title><![CDATA[Reply to Blackout beim Array on Fri, 04 Jul 2008 14:05:01 GMT]]></title><description><![CDATA[<p>Babbage schrieb:</p>
<blockquote>
<blockquote>
<p>sizeof(_werte)/sizeof(int)</p>
</blockquote>
</blockquote>
<p>Da wird mit Sicherheit nicht das herauskommen was du denkst. Die Größe eines Arrays kannst du unter C++ nicht bestimmen. Entweder gibst du sie mit, oder du weichst auf Alternativen aus (z.B. vector).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1541055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1541055</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Fri, 04 Jul 2008 14:05:01 GMT</pubDate></item><item><title><![CDATA[Reply to Blackout beim Array on Fri, 04 Jul 2008 14:09:59 GMT]]></title><description><![CDATA[<p>Ups, bist Du sicher?<br />
Bei mir hat sowas schon geklappt. Ich weis, ist nicht besonders schön aber gelaufen ist das.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1541060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1541060</guid><dc:creator><![CDATA[Babbage]]></dc:creator><pubDate>Fri, 04 Jul 2008 14:09:59 GMT</pubDate></item><item><title><![CDATA[Reply to Blackout beim Array on Fri, 04 Jul 2008 14:30:27 GMT]]></title><description><![CDATA[<p>Ihr seid ja Spitze! War grad mal unterwegs und schon 4 Antworten! <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="😃"
    /><br />
Vielen Dank erst mal an Alle!!!</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/14816">@Babbage</a>:<br />
Hast' recht! So funktioniert es tatsächlich!<br />
Vielen Dank! Bin ehrlich, auf diese Variante wäre ich nicht gekommen.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/14941">@asc</a>:<br />
Könnte mir höchstens vorstellen, daß es systemabhängig ist?<br />
Wenn ich mich recht an die Anfänge erinnere, gabs doch Unterschiede bei<br />
Integer-Größen zwischen 16- und 32bit <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/1541073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1541073</guid><dc:creator><![CDATA[arnedrews]]></dc:creator><pubDate>Fri, 04 Jul 2008 14:30:27 GMT</pubDate></item><item><title><![CDATA[Reply to Blackout beim Array on Fri, 04 Jul 2008 14:35:52 GMT]]></title><description><![CDATA[<p>Die Grössenbestimmung funktioniert bei statischen Arrays, so lange du sie nicht an eine Funktion übergibtst. Trotzdem oder gerade aus letzterem Grund solltest du entweder die Grösse separat speichern oder mit Containern arbeiten.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

void func(int Array[])
{
	std::cout &lt;&lt; sizeof(Array)/sizeof(Array[0]) &lt;&lt; std::endl;
}

int main()
{
	int Array[35];
	std::cout &lt;&lt; sizeof(Array)/sizeof(Array[0]) &lt;&lt; std::endl;  // Ausgabe: 35
	func(Array);									           // Ausgabe: 1 (=sizeof(int*)/sizeof(int))
	std::cin.get();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1541074</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1541074</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 04 Jul 2008 14:35:52 GMT</pubDate></item><item><title><![CDATA[Reply to Blackout beim Array on Fri, 04 Jul 2008 15:00:02 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12954">@Nexus</a>:<br />
Sorry für die Frage. Aber was ist da der Unterschied?<br />
Im Prinzip macht die Funktion</p>
<pre><code>void func(int Array[]) {
  std::cout &lt;&lt; sizeof(Array)/sizeof(Array[0]) &lt;&lt; std::endl;
}
</code></pre>
<p>doch nichts anderes als</p>
<pre><code>sizeof(Array)/sizeof(int)
</code></pre>
<p>Außer das Ergebnis auszugeben natürlich <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>
<p>Oder hab' ich da was falsch verstanden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1541083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1541083</guid><dc:creator><![CDATA[arnedrews]]></dc:creator><pubDate>Fri, 04 Jul 2008 15:00:02 GMT</pubDate></item><item><title><![CDATA[Reply to Blackout beim Array on Fri, 04 Jul 2008 15:03:59 GMT]]></title><description><![CDATA[<p>Beim Aufruf der Funktion wird das Array als Zeiger übergeben, und dabei geht die Grösseninformation des Arrays verloren.</p>
<p>Du könntest die Funktion auch so schreiben:</p>
<pre><code class="language-cpp">void func(int* Array) // statt int Array[] oder int Array[35]
{
    // &quot;Array&quot; ist hier kein Array mehr, sondern ein Zeiger auf int
    // sizeof(Array) ist deshalb sizeof(int*) und das ist 4 (Grösse eines Zeigers)
	std::cout &lt;&lt; sizeof(Array)/sizeof(Array[0]) &lt;&lt; std::endl; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1541086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1541086</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 04 Jul 2008 15:03:59 GMT</pubDate></item></channel></rss>