<?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[Array - Anzahl Elemente]]></title><description><![CDATA[<p>Wie kann ich die Anzahl der Elemente eines Arrays herausbekommen? Gibt es da eine Möglichkeit?</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/230695/array-anzahl-elemente</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 02:53:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/230695.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 30 Dec 2008 22:54:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array - Anzahl Elemente on Tue, 30 Dec 2008 22:54:23 GMT]]></title><description><![CDATA[<p>Wie kann ich die Anzahl der Elemente eines Arrays herausbekommen? Gibt es da eine Möglichkeit?</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637533</guid><dc:creator><![CDATA[Stromberg_]]></dc:creator><pubDate>Tue, 30 Dec 2008 22:54:23 GMT</pubDate></item><item><title><![CDATA[Reply to Array - Anzahl Elemente on Tue, 30 Dec 2008 22:59:37 GMT]]></title><description><![CDATA[<p>Stromberg_ schrieb:</p>
<blockquote>
<p>Wie kann ich die Anzahl der Elemente eines Arrays herausbekommen? Gibt es da eine Möglichkeit?<br />
MfG<br />
Stromberg</p>
</blockquote>
<p>solange das array noch da ist, mit sizeof(arr)/sizeof(arr[0])<br />
aber wenn das array an eine funktion übergeben wurde, ist die größe innerhalb der funktion vergessen. daher mußt du bei funktionsaufrufen die größe als zweiten parameter mitübergeben.<br />
da sieht so oder so ähnlich aus:</p>
<pre><code class="language-cpp">a[]={1,5,4,2,3};
ausgabe(a,sizeof(a)/sizeof(a[0]));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1637534</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637534</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 30 Dec 2008 22:59:37 GMT</pubDate></item><item><title><![CDATA[Reply to Array - Anzahl Elemente on Wed, 31 Dec 2008 00:40:26 GMT]]></title><description><![CDATA[<p>Man kann keine Arrays an Funktionen übergeben <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/1637587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637587</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 31 Dec 2008 00:40:26 GMT</pubDate></item><item><title><![CDATA[Reply to Array - Anzahl Elemente on Wed, 31 Dec 2008 00:45:16 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Man kann keine Arrays an Funktionen übergeben <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>
</blockquote>
<p>Und was ist das?</p>
<pre><code class="language-cpp">template&lt;typename T, std::size_t SIZE&gt;
void foo(T(&amp; array)[SIZE])
{
}
</code></pre>
<p>:p</p>
<p>Aber so wie es volkard gemeint hat, stimmt es natürlich, da übergibt man nur einen Zeiger. Das Array wurde implizit konvertiert.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637588</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637588</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Wed, 31 Dec 2008 00:45:16 GMT</pubDate></item><item><title><![CDATA[Reply to Array - Anzahl Elemente on Wed, 31 Dec 2008 02:44:36 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Man kann keine Arrays an Funktionen übergeben <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>
</blockquote>
<p>Und was ist das?</p>
<pre><code class="language-cpp">template&lt;typename T, std::size_t SIZE&gt;
void foo(T(&amp; array)[SIZE])
{
}
</code></pre>
<p>:p</p>
</blockquote>
<p>Das ist eine Referenz auf ein Array, kein Array.<br />
pass-by-value != pass-by-reference<br />
:p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637613</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637613</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 31 Dec 2008 02:44:36 GMT</pubDate></item><item><title><![CDATA[Reply to Array - Anzahl Elemente on Wed, 31 Dec 2008 08:03:47 GMT]]></title><description><![CDATA[<p>Stromberg_ schrieb:</p>
<blockquote>
<p>Wie kann ich die Anzahl der Elemente eines Arrays herausbekommen?</p>
</blockquote>
<p>Mit <a href="http://www.boost.org/doc/libs/1_37_0/doc/html/boost/array.html#id2451928-bb" rel="nofollow">size()</a> es sei denn natürlich du hast einen besonders guten Grund, C-Arrays zu benutzen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637629</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 31 Dec 2008 08:03:47 GMT</pubDate></item><item><title><![CDATA[Reply to Array - Anzahl Elemente on Wed, 31 Dec 2008 11:57:29 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Das ist eine Referenz auf ein Array, kein Array.<br />
pass-by-value != pass-by-reference</p>
</blockquote>
<p>Du hast gesagt, man kann keine Arrays an Funktionen übergeben. Du hast nichts gesagt, ob es eine Referenz oder eine Kopie sein soll :p</p>
<p>Aber ok, du willst eine Kopie? Gut:</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt;
// ...

template&lt;typename T, std::size_t SIZE&gt;
void foo(const T(&amp; array)[SIZE])
{
  T copy[SIZE];
  std::copy(array, array + SIZE, copy);

  // ...
}
</code></pre>
<p>Zufrieden? <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/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637684</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Wed, 31 Dec 2008 11:57:29 GMT</pubDate></item><item><title><![CDATA[Reply to Array - Anzahl Elemente on Wed, 31 Dec 2008 12:31:29 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>Zufrieden? <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/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
</blockquote>
<p>Kaum, denn <strong>übergeben</strong> wird es immer noch als Referenz. :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637700</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 31 Dec 2008 12:31:29 GMT</pubDate></item><item><title><![CDATA[Reply to Array - Anzahl Elemente on Thu, 01 Jan 2009 07:42:13 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Das ist eine Referenz auf ein Array, kein Array.<br />
pass-by-value != pass-by-reference</p>
</blockquote>
<p>Du hast gesagt, man kann keine Arrays an Funktionen übergeben. Du hast nichts gesagt, ob es eine Referenz oder eine Kopie sein soll :p</p>
<p>Aber ok, du willst eine Kopie? Gut:</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt;
// ...

template&lt;typename T, std::size_t SIZE&gt;
void foo(const T(&amp; array)[SIZE])
{
  T copy[SIZE];
  std::copy(array, array + SIZE, copy);

  // ...
}
</code></pre>
<p>Zufrieden? <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/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>Grüssli</p>
</blockquote>
<p>Bei &quot;pass by reference&quot; wird eine Referenz übergeben, nicht &quot;das Array (als Referenz)&quot; (&quot;das Array als Referenz&quot; ist in sich schon Unsinn, da man ein Array nicht in eine Referenz konvertieren kann).</p>
<p>Deine Funktion nimmt im übrigen auch nur eine Referenz. Dass diese const ist ändert daran nichts. Dass du dann intern eine Kopie anlegst ändert auch nichts. Und auch dass du ein Template verwendest um den Typ sowie die Grösse des Arrays deduzieren zu lassen ändert daran nichts.</p>
<p>Am nähesten kommt man dem &quot;Übergeben von Arrays&quot; IMO noch damit, dass man das Array in eine struct/class wrappt, wie es z.b. boost::array macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637908</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637908</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 01 Jan 2009 07:42:13 GMT</pubDate></item><item><title><![CDATA[Reply to Array - Anzahl Elemente on Thu, 01 Jan 2009 11:02:21 GMT]]></title><description><![CDATA[<p>Falls auch reinzuföllig Vektoren gemeint sein könnten:</p>
<pre><code class="language-cpp">std::vector&lt;int&gt; Array(20);
Array.size();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1637931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637931</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Thu, 01 Jan 2009 11:02:21 GMT</pubDate></item><item><title><![CDATA[Reply to Array - Anzahl Elemente on Thu, 01 Jan 2009 11:47:27 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Bei &quot;pass by reference&quot; wird eine Referenz übergeben, nicht &quot;das Array (als Referenz)&quot; (&quot;das Array als Referenz&quot; ist in sich schon Unsinn, da man ein Array nicht in eine Referenz konvertieren kann).</p>
</blockquote>
<p>Es tut mir ja leid, aber das ist doch absoluter Unsinn.<br />
Worauf referenziert diese übergebene Referenz? Oh, auf das Array. Daher sagt man dem, man übergibt das Array als Referenz, was mit konvertieren im übrigen überhaupt nichts am Hut hat. Man greift über die Referenz auf das Array zu. Wenn nach deiner Auffassung das Array nicht übergeben wurde, dann könnte man mit der Referenz gar nicht darauf zugreifen.<br />
Schliesslich, gibt es gar keine Referenzen als Objekt. Du kannst also eigentlich gar keine Referenz übergeben, da es eigentlich die Referenz als Objekt nicht existiert. Auch im neuen Draft des Standards steht (habe den alten hier nicht), dass eine Referenz als Name auf das Objekt, welches die Referenz referenziert, verstanden werden kann. Wir übergeben somit das Array mit einem neuen Namen.</p>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Dass diese const ist ändert daran nichts.</p>
</blockquote>
<p>Schlaumeier. Das const habe ich sicher nicht hingeschrieben, um daran etwas zu ändern. Da geht es nur darum, dass man das ursprüngliche Array nicht verändern kann. Damit ich nämlich selber die Kopie erzeugen kann.</p>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Dass du dann intern eine Kopie anlegst ändert auch nichts.</p>
</blockquote>
<p>Ich erweitere damit einfach den Funktionsaufruf. Am Ende habe ich genau das, was passiert wäre, wenn das Array als Kopie übergeben wurde. Ich habe es einfach selber gemacht. Es war ja auch nicht all zu ernst gemeint. Aber die Smilies hast du anscheinend grossartig übersehen.</p>
<p>Erklär mal an dem Code hier, was passiert. Vor allem würde mich interessieren, wie eine Referenz plötzlich 40 Bytes gross sein kann. Ich bin äusserst gespannt, wie du an dem Code abstreiten willst, dass das Array als Referenz übergeben wurde.</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt;

template&lt;typename T, std::size_t SIZE&gt;
void foo(T (&amp;ref)[SIZE])
{
	std::cout &lt;&lt; sizeof(ref) &lt;&lt; std::endl;
	ref[5] = 5;
}

int main() 
{
	int arr[10];
	std::fill_n(&amp;arr[0], 10, 0);

	int (&amp;ref)[10] = arr;

	std::cout &lt;&lt; sizeof(ref) &lt;&lt; std::endl;

	foo(arr);

	ref[3] = 3;

	for(int i = 0; i &lt; 10; ++i)
	{ std::cout &lt;&lt; arr[i] &lt;&lt; &quot;, &quot;; }

	return 0; 
}
</code></pre>
<p>Ausgabe:</p>
<pre><code>40
40
0, 0, 0, 3, 0, 5, 0, 0, 0, 0,
</code></pre>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1637940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1637940</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 01 Jan 2009 11:47:27 GMT</pubDate></item><item><title><![CDATA[Reply to Array - Anzahl Elemente on Fri, 02 Jan 2009 22:11:39 GMT]]></title><description><![CDATA[<p>Dravere, ich vermute du weisst schon genau was ich meine. Hier mit Code um sich zu werfen bringt wohl nicht mehr viel.<br />
Wenn ich sage &quot;das Array wird übergeben&quot;, meine ich in diesem Fall es wird by-value übergeben, und genau das geht in C++ nicht, da sind wir uns ja denke ich einig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1638586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638586</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 02 Jan 2009 22:11:39 GMT</pubDate></item><item><title><![CDATA[Reply to Array - Anzahl Elemente on Fri, 02 Jan 2009 22:18:39 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>Erklär mal an dem Code hier, was passiert. Vor allem würde mich interessieren, wie eine Referenz plötzlich 40 Bytes gross sein kann.</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt;

template&lt;typename T, std::size_t SIZE&gt;
void foo(T (&amp;ref)[SIZE])
{
	std::cout &lt;&lt; sizeof(ref) &lt;&lt; std::endl;
	ref[5] = 5;
}

int main() 
{
	int arr[10];
	std::fill_n(&amp;arr[0], 10, 0);

	int (&amp;ref)[10] = arr;

	std::cout &lt;&lt; sizeof(ref) &lt;&lt; std::endl;

	foo(arr);

	ref[3] = 3;

	for(int i = 0; i &lt; 10; ++i)
	{ std::cout &lt;&lt; arr[i] &lt;&lt; &quot;, &quot;; }

	return 0; 
}
</code></pre>
<p>Ausgabe:</p>
<pre><code>40
40
0, 0, 0, 3, 0, 5, 0, 0, 0, 0,
</code></pre>
<p>Grüssli</p>
</blockquote>
<p>das ist leicht damit erklärt, daß die sizeof-funktion nicjt die größe der referenz, sondern die größe des dinges, wo die referenz hinzeigt, anzeigt.</p>
<p>wenn dur die größe der referenz wirklich anschauen willst, mußt du das so machen:</p>
<pre><code class="language-cpp">template&lt;typename T, std::size_t SIZE&gt;
void foo(T (&amp;ref)[SIZE])
{
	struct Test
	{
		T (&amp;ref)[SIZE];
	};
	std::cout &lt;&lt; sizeof(Test) &lt;&lt; std::endl;
}
</code></pre>
<p>ausgabe: 4<br />
also hat die referenz 4 bytes.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1638588</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638588</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 02 Jan 2009 22:18:39 GMT</pubDate></item><item><title><![CDATA[Reply to Array - Anzahl Elemente on Fri, 02 Jan 2009 22:19:36 GMT]]></title><description><![CDATA[<p>call-by-value</p>
<pre><code class="language-cpp">template&lt;class T, unsigned size&gt;
struct value_array
{
    T t[size];
};
template&lt;class T, unsigned size&gt;
void func(&lt;value_array&lt;T, size&gt; arr)
{
    // arr ist eine kopie!
}
int main()
{
    value_array&lt;int, 50&gt; arr;
    func(arr); // kopie!
}
</code></pre>
<p>:p :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1638590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638590</guid><dc:creator><![CDATA[helferlein]]></dc:creator><pubDate>Fri, 02 Jan 2009 22:19:36 GMT</pubDate></item><item><title><![CDATA[Reply to Array - Anzahl Elemente on Fri, 02 Jan 2009 22:23:25 GMT]]></title><description><![CDATA[<p>helferlein schrieb:</p>
<blockquote>
<p>call-by-value</p>
<pre><code class="language-cpp">template&lt;class T, unsigned size&gt;
struct value_array
{
    T t[size];
};
template&lt;class T, unsigned size&gt;
void func(&lt;value_array&lt;T, size&gt; arr)
{
    // arr ist eine kopie!
}
int main()
{
    value_array&lt;int, 50&gt; arr;
    func(arr); // kopie!
}
</code></pre>
<p>:p :p</p>
</blockquote>
<p>ein nicht-array einfach array zu nennen und damit was über arrays zu beweisen, das geht sogar noch einfacher.</p>
<pre><code class="language-cpp">void f(int arr)//call by value
{
}
int main()
{
   int array;
   f(array);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1638593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638593</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 02 Jan 2009 22:23:25 GMT</pubDate></item><item><title><![CDATA[Reply to Array - Anzahl Elemente on Fri, 02 Jan 2009 23:39:51 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13960">@hustbaer</a>,<br />
Der erste Post war nicht so ernst gemeint. Der zweite Post war immer noch eher witzig gemeint. Da war ich ja mehr oder weniger immer mit dir einverstanden. Aber was du dann geschrieben hast. Naja, ich muss mich ja nicht nochmals wiederholen <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="😉"
    /><br />
Man kann nunmal etwas auf zwei Arten übergeben. Dass du zu Beginn pass-by-value meintest, ist für die meisten sicher klar. Deshalb war auch das Smilie da <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>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/106">@volkard</a>,<br />
Der Sinn des Codes war aber zu zeigen, dass man keinen Zeiger hat, sondern eben das übergebene Array.<br />
Der sizeof Operator gibt natürlich bei einer Referenz die grösse des Objektes zurück, auf welche die Referenz referenziert. Laut Standard hat die Referenz keinen adressierbaren Speicher und die grösse ist nicht definiert. Dadurch ist nicht mal sicher, dass das ref in der Struktur Test gleich gross ist, wie das ref, welches im Funktionskopf deklariert wurde. Das hat ja auch den Zweck, dass die Referenz komplett wegoptimiert werden kann, wodurch man direkt mit dem Objekt arbeitet. Es wurde eben das Objekt übergeben.<br />
Aber ich nehm mal an, dass du das selber weisst <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>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1638606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638606</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 02 Jan 2009 23:39:51 GMT</pubDate></item><item><title><![CDATA[Reply to Array - Anzahl Elemente on Sat, 03 Jan 2009 01:41:45 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/106">@volkard</a>,<br />
Der Sinn des Codes war aber zu zeigen, dass man keinen Zeiger hat, sondern eben das übergebene Array.<br />
Der sizeof Operator gibt natürlich bei einer Referenz die grösse des Objektes zurück, auf welche die Referenz referenziert. Laut Standard hat die Referenz keinen adressierbaren Speicher und die grösse ist nicht definiert. Dadurch ist nicht mal sicher, dass das ref in der Struktur Test gleich gross ist, wie das ref, welches im Funktionskopf deklariert wurde. Das hat ja auch den Zweck, dass die Referenz komplett wegoptimiert werden kann, wodurch man direkt mit dem Objekt arbeitet. Es wurde eben das Objekt übergeben.<br />
Aber ich nehm mal an, dass du das selber weisst <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>
</blockquote>
<p>ja, aber du hast es sehr schön zusammengefaßt.<br />
weil nicht definiert ist, daß die referenz zum beispiel innendrin nur ein zeiger ist (wie zufällig bei allen mir bekannten implementierungen), sondern weil die compilerbauer da größte freiheiten haben, kann man echt nicht widersprechen, wenn du sagst, daß nicht eine referenz auf ein array übergeben wurde, sondern daß das array per referenz übergeben wurde.<br />
zu sagen &quot;man kann arrays nicht übergeben&quot; ist nicht haltbar, fürchte ich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1638635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638635</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 03 Jan 2009 01:41:45 GMT</pubDate></item><item><title><![CDATA[Reply to Array - Anzahl Elemente on Sat, 03 Jan 2009 12:29:34 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>zu sagen &quot;man kann arrays nicht übergeben&quot; ist nicht haltbar, fürchte ich.</p>
</blockquote>
<p>Hmm. Ja. Vielleicht eher das hier:<br />
Man kann arrays nicht by value übergeben im herkömmlichen Sinne. Respektive es wird keine völlig neue, unabhängige Entität per Kopie erzeugt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1638744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1638744</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 03 Jan 2009 12:29:34 GMT</pubDate></item><item><title><![CDATA[Reply to Array - Anzahl Elemente on Sat, 03 Jan 2009 23:37:48 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>zu sagen &quot;man kann arrays nicht übergeben&quot; ist nicht haltbar, fürchte ich.</p>
</blockquote>
<p>Hmm. Ja. Vielleicht eher das hier:<br />
Man kann arrays nicht by value übergeben im herkömmlichen Sinne. Respektive es wird keine völlig neue, unabhängige Entität per Kopie erzeugt.</p>
</blockquote>
<p>Womit wir bei einer genaueren (&quot;korrekteren&quot;), aber für Anfänger vermutlich total unverständlichen Formulierung wären <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/1639063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1639063</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 03 Jan 2009 23:37:48 GMT</pubDate></item><item><title><![CDATA[Reply to Array - Anzahl Elemente on Sun, 04 Jan 2009 00:33:15 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>drakon schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>zu sagen &quot;man kann arrays nicht übergeben&quot; ist nicht haltbar, fürchte ich.</p>
</blockquote>
<p>Hmm. Ja. Vielleicht eher das hier:<br />
Man kann arrays nicht by value übergeben im herkömmlichen Sinne. Respektive es wird keine völlig neue, unabhängige Entität per Kopie erzeugt.</p>
</blockquote>
<p>Womit wir bei einer genaueren (&quot;korrekteren&quot;), aber für Anfänger vermutlich total unverständlichen Formulierung wären <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>
</blockquote>
<p>MIST!<br />
ja, deine formulierung war so hübsch und anfängerfortbringend, daß ich mir überlegt hatte, sie in meine sig aufzunehmen. die welt ist gemein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1639092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1639092</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 04 Jan 2009 00:33:15 GMT</pubDate></item><item><title><![CDATA[Reply to Array - Anzahl Elemente on Sun, 04 Jan 2009 10:53:14 GMT]]></title><description><![CDATA[<p>Also um Anfänger ging es ja seit dem 3. Post nicht mehr. <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/1639158</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1639158</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 04 Jan 2009 10:53:14 GMT</pubDate></item></channel></rss>