<?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[unsigned int* in ein char* casten und wieder zurück]]></title><description><![CDATA[<p>moin</p>
<p>ich möchte ein unsigned int* in ein char* casten und in einer anderen funktion wieder zurück casten...</p>
<p>wie bekomm ich das hin ??</p>
<p>thx für hilfe<br />
LT</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/262271/unsigned-int-in-ein-char-casten-und-wieder-zurück</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 18:46:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/262271.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 03 Mar 2010 14:19:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to unsigned int* in ein char* casten und wieder zurück on Wed, 03 Mar 2010 14:22:00 GMT]]></title><description><![CDATA[<p>moin</p>
<p>ich möchte ein unsigned int* in ein char* casten und in einer anderen funktion wieder zurück casten...</p>
<p>wie bekomm ich das hin ??</p>
<p>thx für hilfe<br />
LT</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1863814</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863814</guid><dc:creator><![CDATA[LordTerra]]></dc:creator><pubDate>Wed, 03 Mar 2010 14:22:00 GMT</pubDate></item><item><title><![CDATA[Reply to unsigned int* in ein char* casten und wieder zurück on Wed, 03 Mar 2010 14:46:49 GMT]]></title><description><![CDATA[<p>Entweder mit C-Style-Cast oder reinterpret-cast. Wie hast du's denn versucht? Und warum musst du das überhaupt machen?</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">int main()
{
	unsigned int i=666;
	unsigned int *pi=&amp;i;
	char *pc=(char*)pi;
	unsigned int *pi2=(unsigned int*)pc;
	std::cout &lt;&lt; *pi2;

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1863826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863826</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Wed, 03 Mar 2010 14:46:49 GMT</pubDate></item><item><title><![CDATA[Reply to unsigned int* in ein char* casten und wieder zurück on Wed, 03 Mar 2010 14:55:32 GMT]]></title><description><![CDATA[<p>Ach, ich sehe gerade schon, dass ich zu spät bin, da ich zu lange an dem Beispiel geschrieben habe:</p>
<pre><code class="language-cpp">void foo(int * i)
{
  char *b=reinterpret_cast&lt;char*&gt;(i);
  cout &lt;&lt; b &lt;&lt; endl;   // AB
}

int main()
{
  char* a=new char[3];
  a[0]=65; //'A'
  a[1]=66; //'B'
  a[2]=0;
  foo(reinterpret_cast&lt;int *&gt;(a));
}
</code></pre>
<p>Die Zeigertypen char* und int* sind inkompatibel, da char und int unterschiedliche Größen haben. Daher muss man da mit reinterpret_cast ran. Das Verwenden von reinterpret_cast weist wie so oft darauf hin, dass man Dummheiten vor hat. Und zurecht: Man sollte nicht glauben, dass beim Zugriff auf die Daten über den Zeiger i in meinem Beispiel irgendetwas Definiertes rauskäme. Und ganz bestimmt nicht die 65,66,0 die in das char-Array eingegeben wurden.</p>
<p>Daher die naheliegende Frage: Warum?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1863831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863831</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 03 Mar 2010 14:55:32 GMT</pubDate></item><item><title><![CDATA[Reply to unsigned int* in ein char* casten und wieder zurück on Wed, 03 Mar 2010 15:16:08 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Das Verwenden von reinterpret_cast weist wie so oft darauf hin, dass man Dummheiten vor hat.</p>
</blockquote>
<p>Meistens stimmt das, es gibt aber natürlich auch sinnvolle Anwendungen. Beispielsweise ein int-Zeiger, der auf einen Bildpuffer zeigt (um pixelweise durchzuwandern). Der kann durchaus zum char-Zeiger gecastet werden, um auf die einzelnen Kanäle zuzugreifen o.ä.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1863853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863853</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Wed, 03 Mar 2010 15:16:08 GMT</pubDate></item><item><title><![CDATA[Reply to unsigned int* in ein char* casten und wieder zurück on Wed, 03 Mar 2010 15:21:38 GMT]]></title><description><![CDATA[<p>ok thx variante 1 hat funktioniert ...</p>
<p>um das zu erklären wäre es nötig etwas weiter auszuholen ... und dazu hab ich grad net so die zeit... es geht auf jedenfall darum einen blob in eine oracle datenbank zu speichern ... und das ging bis eben net ... mit dem casten geht es aber ... daher thx ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1863860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863860</guid><dc:creator><![CDATA[LordTerra]]></dc:creator><pubDate>Wed, 03 Mar 2010 15:21:38 GMT</pubDate></item><item><title><![CDATA[Reply to unsigned int* in ein char* casten und wieder zurück on Wed, 03 Mar 2010 19:27:55 GMT]]></title><description><![CDATA[<p>_matze schrieb:</p>
<blockquote>
<p>Meistens stimmt das, es gibt aber natürlich auch sinnvolle Anwendungen.</p>
</blockquote>
<p><code>reinterpret_cast</code> wird vor allem im Low-Level-Bereich benötigt. Eine gute Abstraktion macht den Cast oft überflüssig...</p>
<p>LordTerra schrieb:</p>
<blockquote>
<p>und das ging bis eben net ... mit dem casten geht es aber</p>
</blockquote>
<p>...was natürlich niemanden daran hindert, <code>reinterpret_cast</code> zum einfachen Umgehen von Compilerfehlern zu benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1863967</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1863967</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 03 Mar 2010 19:27:55 GMT</pubDate></item></channel></rss>