<?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[Länge eines Char arrays bestimmen]]></title><description><![CDATA[<p>Guten Abend erstmal,</p>
<p>folgendes kleines Programm:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

int main()
{
	char *C = new char[5];

	for(int i =0; i &lt; 5; i++)
	{   C[i] = 'H';}

   cout &lt;&lt; strlen(C);

	return 0;
}
</code></pre>
<p>Es soll eigentlich die Länge des char-arrays ausgeben. Dabei läuft jedoch irgend etwas falsch. Eigentlich sollte die Länge 5 sein, doch wird 11 ausgegeben. Im debug-Modus enthält das array nach der Speicheranforderung(new) bereits 11 beliebige zeichen (etwa: &quot;jjjjjýýýýý@&quot;). Meine frage ist nun, warum überhaupt platz für 11 chars belegt wird, wenn ich doch nur 5 Plätze anfordere?</p>
<p>Wie kann ich das beheben?</p>
<p>Um es gleich vorweg zu sagen: Ich weis, dass ich auch einen String benutzen könnte, aber es geht hier nur um die Übung.</p>
<p>Danke schonmal</p>
<p>Don Quijote</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/225374/länge-eines-char-arrays-bestimmen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 01 Oct 2026 12:55:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/225374.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Oct 2008 17:05:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Länge eines Char arrays bestimmen on Wed, 22 Oct 2008 17:15:49 GMT]]></title><description><![CDATA[<p>Guten Abend erstmal,</p>
<p>folgendes kleines Programm:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

int main()
{
	char *C = new char[5];

	for(int i =0; i &lt; 5; i++)
	{   C[i] = 'H';}

   cout &lt;&lt; strlen(C);

	return 0;
}
</code></pre>
<p>Es soll eigentlich die Länge des char-arrays ausgeben. Dabei läuft jedoch irgend etwas falsch. Eigentlich sollte die Länge 5 sein, doch wird 11 ausgegeben. Im debug-Modus enthält das array nach der Speicheranforderung(new) bereits 11 beliebige zeichen (etwa: &quot;jjjjjýýýýý@&quot;). Meine frage ist nun, warum überhaupt platz für 11 chars belegt wird, wenn ich doch nur 5 Plätze anfordere?</p>
<p>Wie kann ich das beheben?</p>
<p>Um es gleich vorweg zu sagen: Ich weis, dass ich auch einen String benutzen könnte, aber es geht hier nur um die Übung.</p>
<p>Danke schonmal</p>
<p>Don Quijote</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1602991</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1602991</guid><dc:creator><![CDATA[Don Quijote]]></dc:creator><pubDate>Wed, 22 Oct 2008 17:15:49 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines Char arrays bestimmen on Wed, 22 Oct 2008 17:10:33 GMT]]></title><description><![CDATA[<p>Don Quijote schrieb:</p>
<blockquote>
<p>Es soll eigentlich die Länge des char-arrays ausgeben. Dabei läuft jedoch irgend etwas falsch. Eigentlich sollte die Länge 5 sein, doch wird 11 augegeben.</p>
</blockquote>
<p>strlen bestimmt die Länge eines Strings, indem es ihn zeichenweise durchläuft und nach dem Zeichen '\0', welches das Ende markiert, sucht. Zum Bestimmen sonstiger Arraylängen ist die Funktion nicht geeignet. Bei dir kommt halt an Stelle 11 zufällig ein Nullzeichen.</p>
<p>Es gibt keine (portable) Möglichkeit, die Größe eines per new allozierten Arrays nachträglich festzustellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1602996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1602996</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Wed, 22 Oct 2008 17:10:33 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines Char arrays bestimmen on Wed, 22 Oct 2008 17:12:34 GMT]]></title><description><![CDATA[<p>ok danke....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1602997</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1602997</guid><dc:creator><![CDATA[Don Quijote]]></dc:creator><pubDate>Wed, 22 Oct 2008 17:12:34 GMT</pubDate></item></channel></rss>