<?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[Übergabe von c-Arrays als Parameter und Größenermittlung mit sizeof]]></title><description><![CDATA[<p>Hallo , hab grade folgendes Problem :</p>
<p>#include &lt;cstdlib&gt;<br />
#include &lt;iostream&gt;<br />
#include &quot;Test.cpp&quot;<br />
using namespace std;</p>
<p><a href="//main.cpp">//main.cpp</a> :</p>
<p>int main(int argc, char *argv[])<br />
{<br />
char A [] ={'a','b','c'};<br />
char B [] ={'1','2','3','4','5','6','7','8','9','10','11'};</p>
<p>cout &lt;&lt; sizeof A&lt;&lt;endl; //Ausgabe : 3<br />
cout &lt;&lt; sizeof B&lt;&lt;endl; //Ausgabe : 11<br />
cout &lt;&lt; endl;</p>
<p>Test meinTest;<br />
meinTest.test(A); //Ausgabe 4 ??????????????????<br />
meinTest.test(B); //Ausgabe 4 ??????????????????</p>
<p>system(&quot;PAUSE&quot;);<br />
return EXIT_SUCCESS;<br />
}</p>
<p>// Test.cpp :</p>
<p>class Test {</p>
<p>public :</p>
<p>void test(char cF[]){<br />
cout &lt;&lt; sizeof cF&lt;&lt;endl;<br />
}</p>
<p>};</p>
<p>Warum wird nach Übergabe an die Funktion nicht mehr die richtige Größe ermittelt ? (Gibt beide Male 4 aus) <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="😕"
    /><br />
Danke im Vorraus für schnelle Hilfe <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/topic/246312/übergabe-von-c-arrays-als-parameter-und-größenermittlung-mit-sizeof</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 05:41:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/246312.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 26 Jul 2009 13:06:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Übergabe von c-Arrays als Parameter und Größenermittlung mit sizeof on Sun, 26 Jul 2009 13:06:40 GMT]]></title><description><![CDATA[<p>Hallo , hab grade folgendes Problem :</p>
<p>#include &lt;cstdlib&gt;<br />
#include &lt;iostream&gt;<br />
#include &quot;Test.cpp&quot;<br />
using namespace std;</p>
<p><a href="//main.cpp">//main.cpp</a> :</p>
<p>int main(int argc, char *argv[])<br />
{<br />
char A [] ={'a','b','c'};<br />
char B [] ={'1','2','3','4','5','6','7','8','9','10','11'};</p>
<p>cout &lt;&lt; sizeof A&lt;&lt;endl; //Ausgabe : 3<br />
cout &lt;&lt; sizeof B&lt;&lt;endl; //Ausgabe : 11<br />
cout &lt;&lt; endl;</p>
<p>Test meinTest;<br />
meinTest.test(A); //Ausgabe 4 ??????????????????<br />
meinTest.test(B); //Ausgabe 4 ??????????????????</p>
<p>system(&quot;PAUSE&quot;);<br />
return EXIT_SUCCESS;<br />
}</p>
<p>// Test.cpp :</p>
<p>class Test {</p>
<p>public :</p>
<p>void test(char cF[]){<br />
cout &lt;&lt; sizeof cF&lt;&lt;endl;<br />
}</p>
<p>};</p>
<p>Warum wird nach Übergabe an die Funktion nicht mehr die richtige Größe ermittelt ? (Gibt beide Male 4 aus) <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="😕"
    /><br />
Danke im Vorraus für schnelle Hilfe <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/1749792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1749792</guid><dc:creator><![CDATA[Toman]]></dc:creator><pubDate>Sun, 26 Jul 2009 13:06:40 GMT</pubDate></item><item><title><![CDATA[Reply to Übergabe von c-Arrays als Parameter und Größenermittlung mit sizeof on Sun, 26 Jul 2009 13:09:01 GMT]]></title><description><![CDATA[<p>Funktionen nehmen immer nur den Zeiger aufs erste Element statt des ganzen Arrays (dieser Zeiger hat 4 Bytes). Ein Überbleibsel von C.<br />
Du mußt deswegen die Arraygröße als zweites Argument mitübergeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1749793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1749793</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 26 Jul 2009 13:09:01 GMT</pubDate></item><item><title><![CDATA[Reply to Übergabe von c-Arrays als Parameter und Größenermittlung mit sizeof on Sun, 26 Jul 2009 13:33:23 GMT]]></title><description><![CDATA[<p>oder irgendwann std::vector nehmen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1749805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1749805</guid><dc:creator><![CDATA[toomatsch]]></dc:creator><pubDate>Sun, 26 Jul 2009 13:33:23 GMT</pubDate></item><item><title><![CDATA[Reply to Übergabe von c-Arrays als Parameter und Größenermittlung mit sizeof on Sun, 26 Jul 2009 13:39:36 GMT]]></title><description><![CDATA[<p>Ist der Arrayname nicht schon vor der Übergabe ein Äquivalent zum Zeiger aufs 1.Element und wird auch so behandelt ? Warum funktioniert dann sizeof vor der Übergabe? wird ja auch auf dem Namen und damit für den Zeiger aufs 1.Element aufgerufen....jetzt bin ich verwirrt....oder hab ich da was falsch verstanden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1749808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1749808</guid><dc:creator><![CDATA[Toman]]></dc:creator><pubDate>Sun, 26 Jul 2009 13:39:36 GMT</pubDate></item><item><title><![CDATA[Reply to Übergabe von c-Arrays als Parameter und Größenermittlung mit sizeof on Sun, 26 Jul 2009 14:16:14 GMT]]></title><description><![CDATA[<p>Toman schrieb:</p>
<blockquote>
<p>Ist der Arrayname nicht schon vor der Übergabe ein Äquivalent zum Zeiger aufs 1.Element und wird auch so behandelt ?</p>
</blockquote>
<p>Nein, vorher ists ein Array. Allerdings fressen die ganzen Operationen, die man denkt, mit Arrays zu machen, wie [] in Wirklichkeit nicht ein Array, sondern nur einen Zeiger. Immer, wenn's gebraucht wird, wertet der Arrayname zum Zeiger aufs erste Element aus.</p>
<blockquote>
<p>Warum funktioniert dann sizeof vor der Übergabe?</p>
</blockquote>
<p>Weil sizeof aufs Array geht und der Zeiger da nicht gebraucht wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1749829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1749829</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 26 Jul 2009 14:16:14 GMT</pubDate></item><item><title><![CDATA[Reply to Übergabe von c-Arrays als Parameter und Größenermittlung mit sizeof on Sun, 26 Jul 2009 15:40:49 GMT]]></title><description><![CDATA[<p>In C++ kan man übrigens Arrays als Referenz übergeben. Dabei gehen die Typinformationen nicht verloren. Bei variabler Größe muss man allerdings Templates verwenden. Damit muss die Funktion im Header verfügbar sein. Man kann z.B. sowas machen.</p>
<pre><code class="language-cpp">class Test
{
public:
    template &lt;std::size_t N&gt;
    void foo(char (&amp; array)[N])
    {
        private_foo(array, N);
    }

private:
    void private_foo(char* array, std::size_t N);
}
</code></pre>
<p>Auf diese Weise kann man die Funktion in einer Quelldatei (.cpp) implementieren und der Benutzer muss die Größe nicht explizit angeben.</p>
<p>Gruß<br />
Don06</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1749862</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1749862</guid><dc:creator><![CDATA[Don06]]></dc:creator><pubDate>Sun, 26 Jul 2009 15:40:49 GMT</pubDate></item></channel></rss>