<?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[const char* Wert übergeben]]></title><description><![CDATA[<p>HAllo Leute,</p>
<p>ich würde gerne verschiedenen Daten, also integer, bolls oder char an eine Funktion übertragen, die const char* Werte aufnimmt. KOnkrete will ich Daten definiertren, die über die Funktion send() über TCP verschickt werden.</p>
<p>Ich habe schon versucht einen string mit der c_str() der Funktion als Argument zu übermitteln, allerdings hat das nicht geklappt. Übershe ich da was?</p>
<p>Wie könnte ich denn einen Integer Wert übermitteln?</p>
<p>Gruß<br />
Peter</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/340217/const-char-wert-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 08:36:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/340217.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 26 Oct 2016 14:04:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to const char* Wert übergeben on Wed, 26 Oct 2016 14:04:25 GMT]]></title><description><![CDATA[<p>HAllo Leute,</p>
<p>ich würde gerne verschiedenen Daten, also integer, bolls oder char an eine Funktion übertragen, die const char* Werte aufnimmt. KOnkrete will ich Daten definiertren, die über die Funktion send() über TCP verschickt werden.</p>
<p>Ich habe schon versucht einen string mit der c_str() der Funktion als Argument zu übermitteln, allerdings hat das nicht geklappt. Übershe ich da was?</p>
<p>Wie könnte ich denn einen Integer Wert übermitteln?</p>
<p>Gruß<br />
Peter</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512931</guid><dc:creator><![CDATA[pluxyy]]></dc:creator><pubDate>Wed, 26 Oct 2016 14:04:25 GMT</pubDate></item><item><title><![CDATA[Reply to const char* Wert übergeben on Wed, 26 Oct 2016 14:16:38 GMT]]></title><description><![CDATA[<p>Du sprichst von send der Windowssockets?</p>
<pre><code class="language-cpp">int a = 1;
send( mySocket, &amp;a, sizeof a, 0 );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2512932</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512932</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 26 Oct 2016 14:16:38 GMT</pubDate></item><item><title><![CDATA[Reply to const char* Wert übergeben on Wed, 26 Oct 2016 14:18:46 GMT]]></title><description><![CDATA[<p>1. Rechtsschreibfehler.<br />
2. Windows? Da hat <code>send</code> einen anderen Prototypen als POSIX spezifiziert. Aber ansonsten ist das nicht weiter tragisch, <code>char*</code> und <code>void*</code> passt.<br />
3. Und wie soll der Code aussehen, mit dem du deinen String übertragen hast? Und wie hast du ihn empfangen?<br />
4. Integer würde ich über <code>hotl</code> versenden und empfangen. Im Grunde wieder nichts anderes.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512933</guid><dc:creator><![CDATA[dachschaden]]></dc:creator><pubDate>Wed, 26 Oct 2016 14:18:46 GMT</pubDate></item><item><title><![CDATA[Reply to const char* Wert übergeben on Wed, 26 Oct 2016 15:03:31 GMT]]></title><description><![CDATA[<p>@Manni66<br />
Danke,ja ich meine Winsock. Ok Adressen gehen wohl. Jetzt kommt aber beim Server immer das gleiche Symbol &quot;╠&quot;</p>
<p>Im Internet habe ich gelesen, dass es evtl. am fehlenden Nulldeterminator liegen kann.</p>
<p>Wenn ich jedoch eine char wie folgt definiere:<br />
char a[] = {'A','\0'}<br />
kann ich mit &amp;a nicht in der send() fkt nutzen. Gibt es einen anderen Weg den Null-determinator zu setzen? Ich glaube aber , dass es an was anderem liegt, der Nulldeterminator müsste doch automatisch gesetzt werden (z.B. beim integer).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512944</guid><dc:creator><![CDATA[pluxyy]]></dc:creator><pubDate>Wed, 26 Oct 2016 15:03:31 GMT</pubDate></item><item><title><![CDATA[Reply to const char* Wert übergeben on Wed, 26 Oct 2016 15:22:58 GMT]]></title><description><![CDATA[<p>pluxyy schrieb:</p>
<blockquote>
<p>Ok Adressen gehen wohl. Jetzt kommt aber beim Server immer das gleiche Symbol &quot;╠&quot;</p>
</blockquote>
<p>Nur?</p>
<p>pluxyy schrieb:</p>
<blockquote>
<p>Im Internet habe ich gelesen, dass es evtl. am fehlenden Nulldeterminator liegen kann.</p>
</blockquote>
<p>&quot;Überflogen&quot; trifft's wohl eher. Du meinst den NUL-Terminator.</p>
<p>Moment, also kommt das Symbol NACH dem String? Oder kommt nur das Symbol? Wenn letzteres, dann ließt du was nicht korrekt ein.</p>
<p>pluxyy schrieb:</p>
<blockquote>
<p>Wenn ich jedoch eine char wie folgt definiere:<br />
char a[] = {'A','\0'}<br />
kann ich mit &amp;a nicht in der send() fkt nutzen.</p>
</blockquote>
<p>... was?</p>
<p>pluxyy schrieb:</p>
<blockquote>
<p>Gibt es einen anderen Weg den Null-determinator zu setzen? Ich glaube aber , dass es an was anderem liegt, der Nulldeterminator müsste doch automatisch gesetzt werden (z.B. beim integer).</p>
</blockquote>
<p>Integer haben keinen NUL-Terminator. Und den Terminator kannst du ganz leicht selbst setzen, du hast schließlich die Länge der gelesenen Daten und (genug Speicher vorausgesetzt) noch ein Byte, um den Terminator zu schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512949</guid><dc:creator><![CDATA[dachschaden]]></dc:creator><pubDate>Wed, 26 Oct 2016 15:22:58 GMT</pubDate></item><item><title><![CDATA[Reply to const char* Wert übergeben on Wed, 26 Oct 2016 15:26:33 GMT]]></title><description><![CDATA[<p>Interessant.<br />
Bei integer wird &quot;Nullterminator&quot; automatisch gesetzt?<br />
Da habe ich wohl was verpasst.</p>
<pre><code>char a[] = {'A','\0'}; /* äquivalent ist char a[]=&quot;A&quot;; */
send( s, &amp;a, sizeof a, 0); /* ist UB */
</code></pre>
<p>C++-String mit c_str() ginge auch, aber dann mit size()<strong>+1</strong> als Größenangabe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512950</guid><dc:creator><![CDATA[Wutz]]></dc:creator><pubDate>Wed, 26 Oct 2016 15:26:33 GMT</pubDate></item><item><title><![CDATA[Reply to const char* Wert übergeben on Wed, 26 Oct 2016 15:39:18 GMT]]></title><description><![CDATA[<p>Abgesehen davon, daß du nicht einmal einen halbwegs fehlerfreien Satz hinkriegst (vielleicht wäre Regalauffüller die vielversprechendere Berufsperspektive für dich?) braucht das keinen Nullterminator, mein kleiner Terminator, du.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512955</guid><dc:creator><![CDATA[EOP]]></dc:creator><pubDate>Wed, 26 Oct 2016 15:39:18 GMT</pubDate></item><item><title><![CDATA[Reply to const char* Wert übergeben on Wed, 26 Oct 2016 16:02:10 GMT]]></title><description><![CDATA[<p>pluxyy schrieb:</p>
<blockquote>
<p>@Manni66<br />
Danke,ja ich meine Winsock. Ok Adressen gehen wohl. Jetzt kommt aber beim Server immer das gleiche Symbol &quot;╠&quot;</p>
</blockquote>
<p>Nein, es kommen keine Zeichen sondern 4 Byte. Da du ein int reingesteckt hast musst du es auch genauso wieder lesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512965</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 26 Oct 2016 16:02:10 GMT</pubDate></item><item><title><![CDATA[Reply to const char* Wert übergeben on Wed, 26 Oct 2016 16:27:22 GMT]]></title><description><![CDATA[<blockquote>
<p>Nur?</p>
</blockquote>
<p>Ja, nur. Leider nichts anderes. Am Server kann es aber nicht liegen, da ich schon mit anderen Clients eine Kommunikation aufgebaut habe und der Server dann die empfangenen Daten richtig ausspuckt.</p>
<blockquote>
<p>Oder kommt nur das Symbol? Wenn letzteres, dann ließt du was nicht korrekt ein.</p>
</blockquote>
<p>Das befürchte ich auch. Nur leider habe ich keine Ahnung woran es liegen kann. Ich habe eure Beispiele (Manni66) 1:1 umgesetzt, bekomme aber dann die folgende Fehlermeldung (In diesem Fall kann ich natürlich auch nichts übertragen):</p>
<blockquote>
<p>Fehler: C2664: 'int send(SOCKET,const char *,int,int)' : cannot convert argument 2 from 'int *' to 'const char *'<br />
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast</p>
</blockquote>
<p>Ich denke es muss an was richtig banalem liegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512973</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512973</guid><dc:creator><![CDATA[pluxyy]]></dc:creator><pubDate>Wed, 26 Oct 2016 16:27:22 GMT</pubDate></item><item><title><![CDATA[Reply to const char* Wert übergeben on Wed, 26 Oct 2016 16:51:33 GMT]]></title><description><![CDATA[<p>pluxyy schrieb:</p>
<blockquote>
<p>bekomme aber dann die folgende Fehlermeldung (In diesem Fall kann ich natürlich auch nichts übertragen):</p>
<blockquote>
<p>Fehler: C2664: 'int send(SOCKET,const char *,int,int)' : cannot convert argument 2 from 'int *' to 'const char *'<br />
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast</p>
</blockquote>
<p>Ich denke es muss an was richtig banalem liegen.</p>
</blockquote>
<p>Wieviel mehr Hinweise willst du nnoch?<br />
Spoon feeding ist generell abgeschaltet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2512977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512977</guid><dc:creator><![CDATA[EOP]]></dc:creator><pubDate>Wed, 26 Oct 2016 16:51:33 GMT</pubDate></item><item><title><![CDATA[Reply to const char* Wert übergeben on Wed, 26 Oct 2016 19:41:37 GMT]]></title><description><![CDATA[<p>pluxyy schrieb:</p>
<blockquote>
<blockquote>
<p>Fehler: C2664: 'int send(SOCKET,const char *,int,int)' : cannot convert argument 2 from 'int *' to 'const char *'<br />
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast</p>
</blockquote>
<p>Ich denke es muss an was richtig banalem liegen.</p>
</blockquote>
<p>Da steht doch exakt was das Problem ist und was du tun kannst: Die Funktion erwartet einen *const char ** aber du gibt ihr ein *int **. Der Compiler wandelt das aus gutem Grund nicht automatisch um, da es im allgemeinen sehr gefährlich sein kann Zeiger in andere Zeiger umzuwandeln ohne das zwischen den Typen ein definierter Zusammenhang besteht. Da muss man wissen was man tut (Ist bei dir offenbar nicht der Fall). Um den Compiler zu sagen &quot;Ich will , dass du den &quot;*int ** zu einem *const char ** machest, ich weiß was ich tue!&quot; kannst du einen <em>reinterpret_cast</em> nehmen, wie dir bereits gesagt wurde, also</p>
<pre><code>reinterpret_cast&lt;const char*&gt;()
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2512989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2512989</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Wed, 26 Oct 2016 19:41:37 GMT</pubDate></item><item><title><![CDATA[Reply to const char* Wert übergeben on Thu, 27 Oct 2016 09:39:32 GMT]]></title><description><![CDATA[<blockquote>
<pre><code class="language-cpp">reinterpret_cast&lt;const char*&gt;()
</code></pre>
</blockquote>
<p>So ein krass hässliches Teil.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2513036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2513036</guid><dc:creator><![CDATA[hg5th6h54]]></dc:creator><pubDate>Thu, 27 Oct 2016 09:39:32 GMT</pubDate></item><item><title><![CDATA[Reply to const char* Wert übergeben on Thu, 27 Oct 2016 13:02:26 GMT]]></title><description><![CDATA[<p>hg5th6h54 schrieb:</p>
<blockquote>
<blockquote>
<pre><code class="language-cpp">reinterpret_cast&lt;const char*&gt;()
</code></pre>
</blockquote>
<p>So ein krass hässliches Teil.</p>
</blockquote>
<p>Das soll hässlich sein. Man soll es nämlich so weit wie möglich vermeiden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2513074</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2513074</guid><dc:creator><![CDATA[TNA]]></dc:creator><pubDate>Thu, 27 Oct 2016 13:02:26 GMT</pubDate></item></channel></rss>