<?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[Merkwürdige Länge von char-Arrays]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>habe wieder mal ein merkwürdiges Problem im Zusammenhang mit char-Arrays. Ich möchte gerne in eine 40 Zeichen lange Zeichenkette mit dem Namen &quot;ziel&quot; einen (hex-)String so ablegen, dass die führenden Stellen von &quot;ziel&quot; mit '0' aufgefüllt werden. Dazu hab ich mir folgendes zusammengebastelt:</p>
<pre><code class="language-cpp">int z = 40;	// Anzahl der Stellen

char* ziel = new char[z];
char* hex = &quot;ffffffff&quot;;

int l = strlen(hex);

// führende Nullen
for (int i = 0; i &lt; z - l; i++)
	ziel[i] = '0';

// Rest
int j = 0;
for (int i = z - l; i &lt; z; i++)
{
	ziel[i] = hex[j];
	j++;
}
</code></pre>
<p>Das Problem ist nun, dass ich nicht nur das gewünschte 40 Zeichen lange Ergebnis erhalte, sonderen das gewünschte Ergebnis plus fünf weiter Zeichen, also z.B. &quot;00000000000000000000000000000000fffffffferla?&quot; oder &quot;00000000000000000000000000000000ffffffffter[1&quot; anstelle von &quot;00000000000000000000000000000000ffffffff&quot;. Liegt das vielleicht daran, dass ich Zeiger auf die chars verwende? Allerdings müssen es hier Zeiger sein, denn eigentlich soll der obige Code in einer Funktion stehen, die &quot;hex&quot; als Argument übergeben bekommt...</p>
<p>Wäre mal wieder sehr dankbar über jeden Hinweis...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/129376/merkwürdige-länge-von-char-arrays</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 04:27:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/129376.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Dec 2005 10:19:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Merkwürdige Länge von char-Arrays on Tue, 13 Dec 2005 10:19:01 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>habe wieder mal ein merkwürdiges Problem im Zusammenhang mit char-Arrays. Ich möchte gerne in eine 40 Zeichen lange Zeichenkette mit dem Namen &quot;ziel&quot; einen (hex-)String so ablegen, dass die führenden Stellen von &quot;ziel&quot; mit '0' aufgefüllt werden. Dazu hab ich mir folgendes zusammengebastelt:</p>
<pre><code class="language-cpp">int z = 40;	// Anzahl der Stellen

char* ziel = new char[z];
char* hex = &quot;ffffffff&quot;;

int l = strlen(hex);

// führende Nullen
for (int i = 0; i &lt; z - l; i++)
	ziel[i] = '0';

// Rest
int j = 0;
for (int i = z - l; i &lt; z; i++)
{
	ziel[i] = hex[j];
	j++;
}
</code></pre>
<p>Das Problem ist nun, dass ich nicht nur das gewünschte 40 Zeichen lange Ergebnis erhalte, sonderen das gewünschte Ergebnis plus fünf weiter Zeichen, also z.B. &quot;00000000000000000000000000000000fffffffferla?&quot; oder &quot;00000000000000000000000000000000ffffffffter[1&quot; anstelle von &quot;00000000000000000000000000000000ffffffff&quot;. Liegt das vielleicht daran, dass ich Zeiger auf die chars verwende? Allerdings müssen es hier Zeiger sein, denn eigentlich soll der obige Code in einer Funktion stehen, die &quot;hex&quot; als Argument übergeben bekommt...</p>
<p>Wäre mal wieder sehr dankbar über jeden Hinweis...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940843</guid><dc:creator><![CDATA[hejira]]></dc:creator><pubDate>Tue, 13 Dec 2005 10:19:01 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwürdige Länge von char-Arrays on Tue, 13 Dec 2005 10:36:38 GMT]]></title><description><![CDATA[<p>Du musst ihm auch sagen dass der char irgendwo zuende ist (durch das Zeichen '\0'). C weiss intern nicht ob in dem 40-stelligen Feld null, ein, fünf, 40 oder 50 Zeichen Text stehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940865</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 13 Dec 2005 10:36:38 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwürdige Länge von char-Arrays on Tue, 13 Dec 2005 11:34:43 GMT]]></title><description><![CDATA[<p>Vielen Dank für die Hilfe, LordJaxom. Ich habe jetzt einfach '\0' an Stelle 40 des Arrays gesetzt, was ja jenseits von dessen Grenze liegt. Jetzt funktioniert es prima, aber überschreibt man so eigentlich nicht irgendetwas anderes an dieser Stelle im Speicher?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940911</guid><dc:creator><![CDATA[hejira]]></dc:creator><pubDate>Tue, 13 Dec 2005 11:34:43 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwürdige Länge von char-Arrays on Tue, 13 Dec 2005 11:38:53 GMT]]></title><description><![CDATA[<p>Ja, eigentlich überschreibst du damit fremden Speicher (bzw. kannst nicht sicher sein, ob dir das nächste new dein Stringende abschneidet) - du solltest also besser genügend Platz für den String <strong>inklusive</strong> Endezeichen reservieren (mit &quot;ziel=new char[z+1];&quot;).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940917</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 13 Dec 2005 11:38:53 GMT</pubDate></item><item><title><![CDATA[Reply to Merkwürdige Länge von char-Arrays on Tue, 13 Dec 2005 11:39:38 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>richtig erkannt, damit überschreitest du die Grenzen des Arrays und erzeugst Fehler.<br />
C-Arrays müßen deshalb immer um eins länger sein als effektiv Zeichen vorhanden sein sollen. Damit das abschließende '\0' reinpasst.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940918</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940918</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 13 Dec 2005 11:39:38 GMT</pubDate></item></channel></rss>