<?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[char* eine 0 zuweisen? - unter WinCE]]></title><description><![CDATA[<p>Hallo ...</p>
<p>ich habe ein kleines Problem mit char* und der Zahl 0.<br />
Ich möchte die Zahl 0 einem char* zuweisen.<br />
Der Code läuft auch unter einer normalen Windows-Umgebung,<br />
aber nicht unter WinCE.<br />
Ich kann so jede andere Zahl zuweisen, nur nicht die 0. Warum?</p>
<p>Hier mein Code-Stück um das es geht:</p>
<p>unsigned char* mData = new unsigned char[1024];<br />
unsigned short us = 0;<br />
usigned char temp = (unsigned char) us; // im debugger zeigt er in temp immer 0&quot; statt 0 an<br />
mData[0] = temp;</p>
<p>Danke...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/143070/char-eine-0-zuweisen-unter-wince</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 08:31:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/143070.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 05 Apr 2006 11:48:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to char* eine 0 zuweisen? - unter WinCE on Wed, 05 Apr 2006 11:49:28 GMT]]></title><description><![CDATA[<p>Hallo ...</p>
<p>ich habe ein kleines Problem mit char* und der Zahl 0.<br />
Ich möchte die Zahl 0 einem char* zuweisen.<br />
Der Code läuft auch unter einer normalen Windows-Umgebung,<br />
aber nicht unter WinCE.<br />
Ich kann so jede andere Zahl zuweisen, nur nicht die 0. Warum?</p>
<p>Hier mein Code-Stück um das es geht:</p>
<p>unsigned char* mData = new unsigned char[1024];<br />
unsigned short us = 0;<br />
usigned char temp = (unsigned char) us; // im debugger zeigt er in temp immer 0&quot; statt 0 an<br />
mData[0] = temp;</p>
<p>Danke...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1030963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1030963</guid><dc:creator><![CDATA[MarcusFrankfurt]]></dc:creator><pubDate>Wed, 05 Apr 2006 11:49:28 GMT</pubDate></item><item><title><![CDATA[Reply to char* eine 0 zuweisen? - unter WinCE on Wed, 05 Apr 2006 12:03:17 GMT]]></title><description><![CDATA[<p>Willst Du eine Zahl in einen String umwandlen, oder was hast Du vor?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1030975</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1030975</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Wed, 05 Apr 2006 12:03:17 GMT</pubDate></item><item><title><![CDATA[Reply to char* eine 0 zuweisen? - unter WinCE on Wed, 05 Apr 2006 12:14:27 GMT]]></title><description><![CDATA[<p>Im Prinzip ja...</p>
<p>Und zwar möche ich z.B. eine short-Zahl (16 Bit) auf char's abbilden...<br />
insgesamt dann halt 2 chars.</p>
<pre><code class="language-cpp">unsigned char* mData = new unsigned char[1024]; 
short value = 2;

short temp1 = ((value &amp; 0xFF00) &gt;&gt;  8);    // oberen 8 bits 
mData[0] = (unsigned char) temp1;

short temp2 = (value&amp; 0x00FF));	      // unteren 8 bits
mData[1] = (unsigned char) temp2;
</code></pre>
<p>Funktioieren tut der Code bestens, wenn ich einen größere Zahl<br />
als die Zahl 2 wie hier in dem Beispiel nehme. Die 2 belegt<br />
ja bekanntlich nur die unteren 8 Bits. D.h. das die oberen 8 Bits<br />
(als short) 0 sind. Diese 0 soll halt jetzt im Array an erster Stelle<br />
stehen.<br />
Unter wince will aber der cast nicht klappen mit der 0.</p>
<p>Wenn ich dann mal als Bsp. die Zahl 4711 (also auch die oberen Bits<br />
mit benutze), klappt alles...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1030983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1030983</guid><dc:creator><![CDATA[MarcusFrankfurt]]></dc:creator><pubDate>Wed, 05 Apr 2006 12:14:27 GMT</pubDate></item><item><title><![CDATA[Reply to char* eine 0 zuweisen? - unter WinCE on Wed, 05 Apr 2006 12:14:12 GMT]]></title><description><![CDATA[<p>Ist es eigentlich Absicht, daß du beide Hälften des short-Wertes in das selbe Element deines char-Arrays kopierst? Oder ist das ein Tippfehler?</p>
<p>(PS: CPP-Tags sind durchaus nützlich für die Übersicht ;))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1030992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1030992</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 05 Apr 2006 12:14:12 GMT</pubDate></item><item><title><![CDATA[Reply to char* eine 0 zuweisen? - unter WinCE on Wed, 05 Apr 2006 12:15:32 GMT]]></title><description><![CDATA[<p>Nee, keine Absicht... habe hoffentlich jetzt alle Tippfehler behoben...<br />
danke ... <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/1030995</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1030995</guid><dc:creator><![CDATA[MarcusFrankfurt]]></dc:creator><pubDate>Wed, 05 Apr 2006 12:15:32 GMT</pubDate></item><item><title><![CDATA[Reply to char* eine 0 zuweisen? - unter WinCE on Wed, 05 Apr 2006 12:30:15 GMT]]></title><description><![CDATA[<p>Dann solltest du noch dazusagen, wie sich dieses &quot;klappt nicht&quot; in der Praxis äußert.</p>
<p>(das einzige &quot;Problem&quot; könnte sein, daß du auf dieses Gebilde mit Stringfunktionen anrennen willst - die interpretieren eine '\0' (=0) als Stringende)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1031011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1031011</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 05 Apr 2006 12:30:15 GMT</pubDate></item><item><title><![CDATA[Reply to char* eine 0 zuweisen? - unter WinCE on Wed, 05 Apr 2006 12:34:39 GMT]]></title><description><![CDATA[<p>Um Zahlen in Strings zu konvertieren benutze lieber sprintf() oder itoa() denn der Compiler denkt bei 0 , dass der Zeiger ungültig gemacht werden soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1031017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1031017</guid><dc:creator><![CDATA[qasdfgh]]></dc:creator><pubDate>Wed, 05 Apr 2006 12:34:39 GMT</pubDate></item><item><title><![CDATA[Reply to char* eine 0 zuweisen? - unter WinCE on Wed, 05 Apr 2006 12:48:34 GMT]]></title><description><![CDATA[<p>qasdfgh schrieb:</p>
<blockquote>
<p>Um Zahlen in Strings zu konvertieren benutze lieber sprintf() oder itoa() denn der Compiler denkt bei 0 , dass der Zeiger ungültig gemacht werden soll.</p>
</blockquote>
<p>Hi .. danke, genau das wird wohl das Problem sein! Denke auch mal, dass der Zeiger damit ungültig wird.</p>
<p>Ich fülle dieses char-array aus einem ziemlich komplexen algorithmus heraus. Ich muss immer schrittweise die zeichen einfügen. D.h. bei der Zahl 2 und 16 Bit muss erst die 0 für die oberen Bits und dann die 2 für die unteren Bits eingefügt werden. Den Algorithmus kann ich nicht mehr ändern. Das muss jetzt so ablaufen. (Der tiefere sinn sei diskussionswürdig <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="🙂"
    /> !)<br />
Momentan iteriere ich halt immer mit dem zeiger einen schritt weiter im array.</p>
<pre><code class="language-cpp">unsigned char* mData = new unsigned char[1024];
int mDataIndex = 0;

void addValue(unsigned char value) {
     mData[mDataIndex++] = value;
}
</code></pre>
<p>Wie kann ich das denn jetzt mit einem sprintf umsetzen...?</p>
<p>Ich bin gerade so wirr, wäre nett wenn mir da nochmal jmd. helfen könnte...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1031038</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1031038</guid><dc:creator><![CDATA[MarcusFrankfurt]]></dc:creator><pubDate>Wed, 05 Apr 2006 12:48:34 GMT</pubDate></item><item><title><![CDATA[Reply to char* eine 0 zuweisen? - unter WinCE on Wed, 05 Apr 2006 13:49:50 GMT]]></title><description><![CDATA[<p>Naja sprintf() und itoa() sind nur für Strings und nicht einzelne Zeichen gedacht...<br />
Also kannst du mit deiner früheren fortfahren und dabei prüfst du, ob die Zahl 0 ist.<br />
Wenn ja, dann soll mData[i] das Zeichen '0' bekommen.</p>
<p>Etwa so:</p>
<pre><code class="language-cpp">mData = temp ? ((unsigned char) temp) : ('0');
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1031109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1031109</guid><dc:creator><![CDATA[qasdfgh]]></dc:creator><pubDate>Wed, 05 Apr 2006 13:49:50 GMT</pubDate></item><item><title><![CDATA[Reply to char* eine 0 zuweisen? - unter WinCE on Wed, 05 Apr 2006 14:06:00 GMT]]></title><description><![CDATA[<p>qasdfgh schrieb:</p>
<blockquote>
<p>Etwa so:</p>
<pre><code class="language-cpp">mData = temp ? ((unsigned char) temp) : ('0');
</code></pre>
</blockquote>
<p>Danke ... warum in die Ferne schweifen ... <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="🙂"
    /><br />
Manchmal steht man echt auf dem Schlauch .. <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>Funzt bestens ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1031129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1031129</guid><dc:creator><![CDATA[MarcusFrankfurt]]></dc:creator><pubDate>Wed, 05 Apr 2006 14:06:00 GMT</pubDate></item><item><title><![CDATA[Reply to char* eine 0 zuweisen? - unter WinCE on Thu, 06 Apr 2006 09:17:31 GMT]]></title><description><![CDATA[<p>qasdfgh schrieb:</p>
<blockquote>
<p>Naja sprintf() und itoa() sind nur für Strings und nicht einzelne Zeichen gedacht...<br />
Also kannst du mit deiner früheren fortfahren und dabei prüfst du, ob die Zahl 0 ist.<br />
Wenn ja, dann soll mData[i] das Zeichen '0' bekommen.</p>
<p>Etwa so:</p>
<pre><code class="language-cpp">mData = temp ? ((unsigned char) temp) : ('0');
</code></pre>
</blockquote>
<p>Ist auch nicht gerade eine optimale Lösung - damit kannst du später nicht mehr zwischen 0 und 48 (='0') unterscheiden.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/862">@Marcus</a>: Wenn du deine Zahlen wirklich binär speichern willst, lass die Finger von den Stringverarbeitungsfunktionen der C-Bibliothek und merk' dir gesondert die Länge des Arrays.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1031711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1031711</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 06 Apr 2006 09:17:31 GMT</pubDate></item></channel></rss>