<?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[struct* in char* umwandeln]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Problem:</p>
<p>Ich möchte einen struct * pStructPtr in einen char * pCharPtr umwandeln.<br />
Ich habs mit casten</p>
<pre><code>pCharPtr = (char*)pStructPtr;
</code></pre>
<p>versucht, weil dies bisher mit andersartigen Pointern (z.B. int* in char*) gut geklappt hat.<br />
Aber das geht nicht. Nach der Umwandlung zeigt die in pCharPtr enthaltene Adresse ins Leere.</p>
<p>Auch ne Internetrecherche hat bisher nix ergeben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>(PS: Für was ich´s brauch (nur wen´s interessiert): Ich habe in einem struct einige double und char Werte. Diese möchte ich anhand von Sockets mit der SEND-Fkt über eine TCP/IP-Schnittstelle schicken. Da SEND [send(socketClient,pCharPtr,sizeof(double),0);] (soweit ich weiß) nen Char-Pointer erwartet, will ich den Struct-Pointer eben in einen solchen umwandeln. Hatte zum Testen nen Integerarray erstellt - mit dem gings einwandfrei)</p>
<p>Pi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/249931/struct-in-char-umwandeln</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 06:52:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/249931.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 14 Sep 2009 09:37:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to struct* in char* umwandeln on Mon, 14 Sep 2009 11:33:45 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe folgendes Problem:</p>
<p>Ich möchte einen struct * pStructPtr in einen char * pCharPtr umwandeln.<br />
Ich habs mit casten</p>
<pre><code>pCharPtr = (char*)pStructPtr;
</code></pre>
<p>versucht, weil dies bisher mit andersartigen Pointern (z.B. int* in char*) gut geklappt hat.<br />
Aber das geht nicht. Nach der Umwandlung zeigt die in pCharPtr enthaltene Adresse ins Leere.</p>
<p>Auch ne Internetrecherche hat bisher nix ergeben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>(PS: Für was ich´s brauch (nur wen´s interessiert): Ich habe in einem struct einige double und char Werte. Diese möchte ich anhand von Sockets mit der SEND-Fkt über eine TCP/IP-Schnittstelle schicken. Da SEND [send(socketClient,pCharPtr,sizeof(double),0);] (soweit ich weiß) nen Char-Pointer erwartet, will ich den Struct-Pointer eben in einen solchen umwandeln. Hatte zum Testen nen Integerarray erstellt - mit dem gings einwandfrei)</p>
<p>Pi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778046</guid><dc:creator><![CDATA[Pi]]></dc:creator><pubDate>Mon, 14 Sep 2009 11:33:45 GMT</pubDate></item><item><title><![CDATA[Reply to struct* in char* umwandeln on Mon, 14 Sep 2009 10:16:16 GMT]]></title><description><![CDATA[<p>Pi schrieb:</p>
<blockquote>
<p>Aber das geht nicht. Nach der Umwandlung zeigt die in pCharPtr enthaltene Adresse ins Leere.</p>
</blockquote>
<p>Nein, zeigt sie nicht. Sie zeigt in den Speicher. Und zwar den gleichen auf den pStructPtr zeigt. Ausserdem ist &quot;das geht nicht&quot; keine Fehlerbeschreibung. f'`8k</p>
<p><div class="plugin-markdown"><input type="checkbox" id="checkbox241754" /><label for="checkbox241754"></label></div><a href="http://tggc.tg.funpic.de/index.php?cat=8&amp;page=5" rel="nofollow">Autocogito</a></p>
<p>Gruß, TGGC (<a href="http://www.gamestar.de/index.cfm?pid=819&amp;pk=12279" rel="nofollow">Was Gamestar sagt...</a>)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778072</guid><dc:creator><![CDATA[TGGC]]></dc:creator><pubDate>Mon, 14 Sep 2009 10:16:16 GMT</pubDate></item><item><title><![CDATA[Reply to struct* in char* umwandeln on Mon, 14 Sep 2009 10:48:57 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/71">@TGGC</a>:<br />
Vielen Dank für die überraschend ausführliche Hilfe.</p>
<p>Mit</p>
<p>Pi schrieb:</p>
<blockquote>
<p>Nach der Umwandlung zeigt die in pCharPtr enthaltene Adresse ins Leere.</p>
</blockquote>
<p>meinte ich, dass die in pStructPtr enthaltene Adresse auf ein double-Feld zeigt, in der (z.B.) 50.5 steht. Nach der Umwandlung zeigt die selbe Adresse, die nun in pCharPtr steht auf ein Feld in dem eine Null (0) steht.<br />
Das ist nicht das von mir erwartete, bzw. erhoffte Ergebnis.</p>
<p>Mache ich einen Fehler bei der Umwandlung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778088</guid><dc:creator><![CDATA[Pi]]></dc:creator><pubDate>Mon, 14 Sep 2009 10:48:57 GMT</pubDate></item><item><title><![CDATA[Reply to struct* in char* umwandeln on Mon, 14 Sep 2009 10:54:50 GMT]]></title><description><![CDATA[<p>Pi schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/71">@TGGC</a>:<br />
Vielen Dank für die überraschend ausführliche Hilfe.</p>
<p>Mit</p>
<p>Pi schrieb:</p>
<blockquote>
<p>Nach der Umwandlung zeigt die in pCharPtr enthaltene Adresse ins Leere.</p>
</blockquote>
<p>meinte ich, dass die in pStructPtr enthaltene Adresse auf ein double-Feld zeigt, in der (z.B.) 50.5 steht. Nach der Umwandlung zeigt die selbe Adresse, die nun in pCharPtr steht auf ein Feld in dem eine Null (0) steht.<br />
Das ist nicht das von mir erwartete, bzw. erhoffte Ergebnis.</p>
<p>Mache ich einen Fehler bei der Umwandlung?</p>
</blockquote>
<p>Ja. Du hast falsche Erwartungen bzw. Hoffnungen. f'`8k</p>
<p><div class="plugin-markdown"><input type="checkbox" id="checkbox241755" /><label for="checkbox241755"></label></div><a href="http://tggc.tg.funpic.de/index.php?cat=8&amp;page=5" rel="nofollow">Autocogito</a></p>
<p>Gruß, TGGC (<a href="http://www.gamestar.de/index.cfm?pid=819&amp;pk=12279" rel="nofollow">Was Gamestar sagt...</a>)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778094</guid><dc:creator><![CDATA[TGGC]]></dc:creator><pubDate>Mon, 14 Sep 2009 10:54:50 GMT</pubDate></item><item><title><![CDATA[Reply to struct* in char* umwandeln on Mon, 14 Sep 2009 10:57:48 GMT]]></title><description><![CDATA[<p>Wenn du pCharPtr dereferenzierst, erhältst du halt einen char-Wert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778096</guid><dc:creator><![CDATA[Polka]]></dc:creator><pubDate>Mon, 14 Sep 2009 10:57:48 GMT</pubDate></item><item><title><![CDATA[Reply to struct* in char* umwandeln on Mon, 14 Sep 2009 11:09:14 GMT]]></title><description><![CDATA[<p>Zeige doch mal bitte dein struct!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778106</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778106</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 14 Sep 2009 11:09:14 GMT</pubDate></item><item><title><![CDATA[Reply to struct* in char* umwandeln on Mon, 14 Sep 2009 11:11:26 GMT]]></title><description><![CDATA[<p>Dafür gibt es doch schönere Lösungen, als zu versuchen, das ganze Struct zu casten.</p>
<p>Du kannst doch auch einfach die Member des Struct einzeln umwandeln. Perfomancetechnisch ist das zwar ein wenig unterschiedlich, aber da du das Zeug sowieso über einen Socket versendest, macht das bißchen Zeit für die Umwandlung auch keinen Kohl fett.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778109</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Mon, 14 Sep 2009 11:11:26 GMT</pubDate></item><item><title><![CDATA[Reply to struct* in char* umwandeln on Mon, 14 Sep 2009 11:33:15 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/21632">@knivil</a>:</p>
<pre><code>struct Heading
{
	double headingDegree;
	double magDiff;
	char magErrDir;
};
</code></pre>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6029">@It0101</a>:</p>
<p>Ich weiß. Das mit den Membern einzeln verschicken geht (so hab ichs gemacht weil ich nicht weiterkam) . Mich würde es nur interessieren warum ich das mit der struct-casterei nicht hinbekomme.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778115</guid><dc:creator><![CDATA[Pi]]></dc:creator><pubDate>Mon, 14 Sep 2009 11:33:15 GMT</pubDate></item><item><title><![CDATA[Reply to struct* in char* umwandeln on Mon, 14 Sep 2009 11:17:25 GMT]]></title><description><![CDATA[<p>Zum verschicken von Daten solltest du auf gar keinen Fall dein struct nach char casten. Der Zielrechner kann die verschickten Daten nämlich nicht interpretieren, weil die Art und Weise wie das struct im speicher liegt nicht standardisiert ist. Das kann (und wird) von Maschine zu Maschine und von Compiler zu Compiler unterschiedlich sein, sogar unterschiedliche Compilereinstellungen erzeugen unterschiedliche Speichermuster. Mach es wie It0101 sagt und wandel deine Member einzeln in char[] um.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778116</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778116</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 14 Sep 2009 11:17:25 GMT</pubDate></item><item><title><![CDATA[Reply to struct* in char* umwandeln on Mon, 14 Sep 2009 11:19:30 GMT]]></title><description><![CDATA[<p>Ich finde ja Codetags geben dem noch eine besondere Note.</p>
<p>Was funktioniert denn nu nicht an (Pseudocode):</p>
<pre><code>Heading head;
head = ...

send( fd, &amp;head, sizeof(head) );
recv( fd, &amp;head, sizeof(head) );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1778120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778120</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 14 Sep 2009 11:19:30 GMT</pubDate></item><item><title><![CDATA[Reply to struct* in char* umwandeln on Mon, 14 Sep 2009 11:19:50 GMT]]></title><description><![CDATA[<p>Einfach nen stringstream genommen, den ganzen Krempel da rein gebastelt mit nem Trennzeichen und gut ist. Alles andere könnte unschön werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778121</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778121</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Mon, 14 Sep 2009 11:19:50 GMT</pubDate></item><item><title><![CDATA[Reply to struct* in char* umwandeln on Mon, 14 Sep 2009 11:31:32 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Zum verschicken von Daten solltest du auf gar keinen Fall dein struct nach char casten. Der Zielrechner kann die verschickten Daten nämlich nicht interpretieren, weil die Art und Weise wie das struct im speicher liegt nicht standardisiert ist. Das kann (und wird) von Maschine zu Maschine und von Compiler zu Compiler unterschiedlich sein, sogar unterschiedliche Compilereinstellungen erzeugen unterschiedliche Speichermuster. Mach es wie It0101 sagt und wandel deine Member einzeln in char[] um.</p>
</blockquote>
<p>Ok, ihr habt mich überzeugt <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 />
Ich löse die Member einzeln auf und schick sie per Stringstream übers Netzwerk.<br />
(´n Versuch wars Wert <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>
<p>Trotzdem erstmal Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1778132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1778132</guid><dc:creator><![CDATA[Pi]]></dc:creator><pubDate>Mon, 14 Sep 2009 11:31:32 GMT</pubDate></item></channel></rss>