<?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[int nach char[] konvertieren und ausgeben, dynamisch]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte eine Integer Zahl ausgeben, und muß sie deshalb nach in ein char Array konvertieren, es funktioniert auch, jedoch leider nicht dynamisch.</p>
<p>der Code schaut so aus:</p>
<pre><code>int zahl = 1234;
int laenge = static_cast&lt;int&gt;(log10(zahl)) + 1;
char str[laenge];
itoa(zahl, str, 10);

TextOut(hDC, iXPos, iYPos, str, laenge);
</code></pre>
<p>das Problem ist, dass der Compiler eine feste Länge des Arrays erwartet,<br />
gibt es irgendeine Möglichkeit die Variable char str[] dynamisch zu erstellen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178946/int-nach-char-konvertieren-und-ausgeben-dynamisch</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 02:18:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178946.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 16 Apr 2007 21:14:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to int nach char[] konvertieren und ausgeben, dynamisch on Mon, 16 Apr 2007 21:14:01 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte eine Integer Zahl ausgeben, und muß sie deshalb nach in ein char Array konvertieren, es funktioniert auch, jedoch leider nicht dynamisch.</p>
<p>der Code schaut so aus:</p>
<pre><code>int zahl = 1234;
int laenge = static_cast&lt;int&gt;(log10(zahl)) + 1;
char str[laenge];
itoa(zahl, str, 10);

TextOut(hDC, iXPos, iYPos, str, laenge);
</code></pre>
<p>das Problem ist, dass der Compiler eine feste Länge des Arrays erwartet,<br />
gibt es irgendeine Möglichkeit die Variable char str[] dynamisch zu erstellen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267397</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267397</guid><dc:creator><![CDATA[Jimmy23]]></dc:creator><pubDate>Mon, 16 Apr 2007 21:14:01 GMT</pubDate></item><item><title><![CDATA[Reply to int nach char[] konvertieren und ausgeben, dynamisch on Mon, 16 Apr 2007 21:20:04 GMT]]></title><description><![CDATA[<p>&quot;new&quot;<br />
dann aber aufräumen mit &quot;delete&quot; nicht vergessen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /></p>
<pre><code class="language-cpp">char* pString; //zeiger auf den c_style_string-dings
size_t laenge=123; //typ !!!size_t!!! oder zumindest irgendetwas &quot;unsigned&quot;
pString=new char[laenge]; //alloziert dynamisch speicher aufm heap

//irgendwas mitm string tun...

delete[] pString;//aufräumen
</code></pre>
<p>oder wenn wir schon im c++ forum sind: &quot;string&quot; nehmen, gibt es schon fertiggebacken in der STL, musst nur in der mikrowelle aufwärmen <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/1267400</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267400</guid><dc:creator><![CDATA[Andrey]]></dc:creator><pubDate>Mon, 16 Apr 2007 21:20:04 GMT</pubDate></item><item><title><![CDATA[Reply to int nach char[] konvertieren und ausgeben, dynamisch on Mon, 16 Apr 2007 22:46:18 GMT]]></title><description><![CDATA[<p>ok danke,<br />
jetzt hab ich nur das Problem, dass die Länge um 1 größer sein muß als die Zahl,<br />
ansonsten wird das Programm zwar kompiliert, aber beim Ausführen kommt eine Fehlermeldung, DAMAGAE: after normal Block (#47)</p>
<p>also bspw. bei:</p>
<pre><code class="language-cpp">int zahl = 1234
size_t laenge = 4; //mit 5 klappt's
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1267423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267423</guid><dc:creator><![CDATA[Jimmy23]]></dc:creator><pubDate>Mon, 16 Apr 2007 22:46:18 GMT</pubDate></item><item><title><![CDATA[Reply to int nach char[] konvertieren und ausgeben, dynamisch on Mon, 16 Apr 2007 23:27:11 GMT]]></title><description><![CDATA[<p>das ist kein &quot;problem&quot; das ist einfach so. Denn c-style-strings werden mit einem '\0' terminiert, was soviel wie &quot;ende der zeichenfolge&quot; bedeutet. Nur wenn du deine zeichenkette einfach so hinschreibst, siehst du das zeichen nicht, es muss aber da sein. =&gt; immer ein zeichen mehr reservieren. Oder gleich platz für 16 zeichen reservieren, über die vier-milliarden wirst du eh nicht kommen, soviel kann dein rechner gar nicht rechnen. Und das bissl speicherplatz interessiert eh keinen. Die log() funktion dagegen ist der absolute performance-killer. Voll übertrieben und unnötig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267430</guid><dc:creator><![CDATA[Andrey]]></dc:creator><pubDate>Mon, 16 Apr 2007 23:27:11 GMT</pubDate></item><item><title><![CDATA[Reply to int nach char[] konvertieren und ausgeben, dynamisch on Tue, 17 Apr 2007 15:21:30 GMT]]></title><description><![CDATA[<p>Jimmy23 schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>ich möchte eine Integer Zahl ausgeben, und muß sie deshalb nach in ein char Array konvertieren, es funktioniert auch, jedoch leider nicht dynamisch.</p>
<p>der Code schaut so aus:</p>
<pre><code>int zahl = 1234;
int laenge = static_cast&lt;int&gt;(log10(zahl)) + 1;
char str[laenge];
itoa(zahl, str, 10);

TextOut(hDC, iXPos, iYPos, str, laenge);
</code></pre>
<p>das Problem ist, dass der Compiler eine feste Länge des Arrays erwartet,<br />
gibt es irgendeine Möglichkeit die Variable char str[] dynamisch zu erstellen?</p>
</blockquote>
<p>Nimm doch C++:</p>
<pre><code class="language-cpp">#include &lt;sstream&gt;
...
   int zahl = 1234;
   std::ostringstream ost;
   ost &lt;&lt; zahl;
   // falls TextOut ein char const* reicht:
   TextOut(hDC, iXPos, iYPos, ost.str().c_str(), ost.str().length());
</code></pre>
<p>Kein Gefummel mehr mit \0 oder new o.ä. und außerdem hat ostringstream noch viele nette &quot;Formatierer&quot; und kann mindestens soviel wie printf() ..</p>
<p>Falls TextOut() einen &quot;echte char*&quot; braucht (also in den auch schreiben will), musst Du halt ein geeignete char-Array anlegen und kopieren:</p>
<pre><code class="language-cpp">std::ostringstream ost;
   ost &lt;&lt; zahl;
   char* c_copy = new char [ost.str().length()+1];
   std::copy(ost.str().begin(), ost.str().end(), c_copy);

   // falls TextOut auch schreiben will :
   TextOut(hDC, iXPos, iYPos, c_copy, ost.str().length());
   // hier must Du das verändert Ergebnis noch irgendwie übernehmen

   // ... und nach Gebrauch wieder löschen
   delete[] c_copy;
</code></pre>
<p>Ist nicht so schön, liegt aber halt am Entwurf von TextOut().... (wie gesagt: falls ein char const * nicht reicht).</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267516</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 17 Apr 2007 15:21:30 GMT</pubDate></item><item><title><![CDATA[Reply to int nach char[] konvertieren und ausgeben, dynamisch on Tue, 17 Apr 2007 14:25:16 GMT]]></title><description><![CDATA[<p>werd ich gleich mal ausprobiern,<br />
danke für die Antworten...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267782</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267782</guid><dc:creator><![CDATA[Jimmy23]]></dc:creator><pubDate>Tue, 17 Apr 2007 14:25:16 GMT</pubDate></item><item><title><![CDATA[Reply to int nach char[] konvertieren und ausgeben, dynamisch on Tue, 17 Apr 2007 14:41:51 GMT]]></title><description><![CDATA[<p>copy liegt auch im std namespace <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13624">@Simon2</a> und c(das ich nicht finden konnte) zu löschen ist ja nett ... aber c_copy muss auch weg ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267806</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 17 Apr 2007 14:41:51 GMT</pubDate></item><item><title><![CDATA[Reply to int nach char[] konvertieren und ausgeben, dynamisch on Tue, 17 Apr 2007 15:21:58 GMT]]></title><description><![CDATA[<p>Danke für's debugging !</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1267836</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1267836</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 17 Apr 2007 15:21:58 GMT</pubDate></item></channel></rss>