<?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[reinterpret_cast]]></title><description><![CDATA[<p>Ein Cast, den ich leider noch nie so richtig verstanden habe.<br />
Wenn ich folgenden Code habe:</p>
<pre><code class="language-cpp">int main()
{
    int value = 1000;
    int *p1 = &amp;value;
    char *p2 = reinterpret_cast&lt;char *&gt;(p1);

    return 0;
}
</code></pre>
<p>Als was muss ich mir *p2 nun vorstellen? In wie weit kann ich es verwenden? Beinhaltet es die gleiche Adresse wie *p1?<br />
Oder ist das einzige was ich mit *p2 nun machen kann folgendes?</p>
<pre><code class="language-cpp">int *p3 = reinterpret_cast&lt;int *&gt;(p2);
cout &lt;&lt; *p3 &lt;&lt; endl; //1000
</code></pre>
<p>Und gibt es einen speziellen Fall, wo ihr immer reinterpret_cast verwendet?</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/235239/reinterpret_cast</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 05:42:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/235239.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 27 Feb 2009 11:37:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to reinterpret_cast on Fri, 27 Feb 2009 11:37:02 GMT]]></title><description><![CDATA[<p>Ein Cast, den ich leider noch nie so richtig verstanden habe.<br />
Wenn ich folgenden Code habe:</p>
<pre><code class="language-cpp">int main()
{
    int value = 1000;
    int *p1 = &amp;value;
    char *p2 = reinterpret_cast&lt;char *&gt;(p1);

    return 0;
}
</code></pre>
<p>Als was muss ich mir *p2 nun vorstellen? In wie weit kann ich es verwenden? Beinhaltet es die gleiche Adresse wie *p1?<br />
Oder ist das einzige was ich mit *p2 nun machen kann folgendes?</p>
<pre><code class="language-cpp">int *p3 = reinterpret_cast&lt;int *&gt;(p2);
cout &lt;&lt; *p3 &lt;&lt; endl; //1000
</code></pre>
<p>Und gibt es einen speziellen Fall, wo ihr immer reinterpret_cast verwendet?</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1671200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671200</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Fri, 27 Feb 2009 11:37:02 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast on Fri, 27 Feb 2009 11:45:24 GMT]]></title><description><![CDATA[<blockquote>
<p>The reinterpret_cast operator changes one data type into another. It should be used to cast between incompatible pointer types.</p>
</blockquote>
<blockquote>
<p>Es gibt nur sehr wenige Situationen in denen man einen reinterpret_cast braucht - deshalb sollte man ihn sehr überlegt einsetzen!</p>
</blockquote>
<p>Du kannst ihn dir als eine Art C-Cast vorstellen. Google hilft da aber wohl mehr.</p>
<blockquote>
<p>Und gibt es einen speziellen Fall, wo ihr immer reinterpret_cast verwendet?</p>
</blockquote>
<p>Ja, bin aber grad schreibfaul.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1671207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671207</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Fri, 27 Feb 2009 11:45:24 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast on Fri, 27 Feb 2009 11:48:48 GMT]]></title><description><![CDATA[<p>Den brauchst du z.B., wenn du einen long-Wert in einen Pointer konvertieren willst o.ä. Wir benutzen sowas beim interagieren mit LabView. LabView kennt nunmal keine Pointer, wir müssen aber Pointer auf verschiedene structs an LabView übergeben (Cast nach long), die dann an verschiedene C-Funktionen weitergereicht werden (Handles). Wir machen das allerdings mit guten, alten C-Casts. <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>Dein Beispiel ist auch ganz gut. Wenn ich z.B. einen Bilddatenpuffer als char* habe und mich jetzt gerade pixelweise (bei 32 Bit pro Pixel) im Puffer bewegen will, dann kann ich mir den Pointer einfach nach int* casten und rutsche beim Inkrementieren halt immer einen ganzen Pixel weiter. Sowas in der Art...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1671212</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671212</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 27 Feb 2009 11:48:48 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast on Fri, 27 Feb 2009 11:50:20 GMT]]></title><description><![CDATA[<blockquote>
<p>Beinhaltet es die gleiche Adresse wie *p1?</p>
</blockquote>
<p>ja</p>
<blockquote>
<p>In wie weit kann ich es verwenden?</p>
</blockquote>
<p>Die Addresse wir dann als char interpretiert. Gerade mit char find ich es nützlich, da es so einfach möglich ist an die Bytedarstellung zu kommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1671213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671213</guid><dc:creator><![CDATA[JustAnotherNoob]]></dc:creator><pubDate>Fri, 27 Feb 2009 11:50:20 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast on Fri, 27 Feb 2009 12:09:28 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Ja, bin aber grad schreibfaul.</p>
</blockquote>
<p>Deshalb bin ich ja da! <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="😉"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1671237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671237</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 27 Feb 2009 12:09:28 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast on Fri, 27 Feb 2009 12:59:37 GMT]]></title><description><![CDATA[<p>Ich hoff auch einfach mal mit der Zeit lernt man das durch diverse verschiedenen Programmiersituationen.</p>
<p>MfG<br />
Stromberg</p>
<p>EDIT:<br />
Wo ist der Unterschied zwischen:</p>
<pre><code class="language-cpp">long value = 1000;
char *a = reinterpret_cast&lt;char *&gt;(&amp;value);
</code></pre>
<p>und</p>
<pre><code class="language-cpp">long value = 1000;
char *a = reinterpret_cast&lt;char *&gt;(value);
</code></pre>
<p>???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1671299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671299</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Fri, 27 Feb 2009 12:59:37 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast on Fri, 27 Feb 2009 13:47:27 GMT]]></title><description><![CDATA[<p>Probier's doch, letzteres crasht bei mir. Einen Wert in einen Pointer wandeln? *NO*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1671353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671353</guid><dc:creator><![CDATA[Tester4]]></dc:creator><pubDate>Fri, 27 Feb 2009 13:47:27 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast on Fri, 27 Feb 2009 13:48:23 GMT]]></title><description><![CDATA[<p>Was ist der unterschied zwischen</p>
<p>value<br />
und<br />
&amp;value</p>
<p>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1671355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671355</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Fri, 27 Feb 2009 13:48:23 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast on Fri, 27 Feb 2009 16:11:47 GMT]]></title><description><![CDATA[<p>Also:</p>
<pre><code class="language-cpp">long value = 1000; 
char *a = reinterpret_cast&lt;char *&gt;(value);
</code></pre>
<p>geht bei mir genauso.</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1671451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671451</guid><dc:creator><![CDATA[Stromberg*]]></dc:creator><pubDate>Fri, 27 Feb 2009 16:11:47 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast on Fri, 27 Feb 2009 16:23:58 GMT]]></title><description><![CDATA[<p>Stromberg* schrieb:</p>
<blockquote>
<p>geht bei mir genauso.</p>
</blockquote>
<p>reinterpret_cast interpretiert den wert den du ihm gibst als den typen den du ihm angibst.</p>
<p>ergo:</p>
<p>reinterpret_cast&lt;int*&gt;(i)</p>
<p>der wert von i wird als adresse interpretiert an deren stelle ein int liegt.</p>
<p>reinterpret_cast&lt;int*&gt;(&amp;i)<br />
hier wird die adresse von i als adresse interpretiert an deren stelle ein int liegt.</p>
<p>verständlich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1671458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671458</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Fri, 27 Feb 2009 16:23:58 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast on Mon, 02 Mar 2009 07:19:23 GMT]]></title><description><![CDATA[<p>Das wollte ich mit meinem Beispiel ja auch deutlich machen. Du konvertierst/castest einen Pointer in eine long-Variable (z.B. für LabView) und castest ihn dann wieder zurück in einen Pointer...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1672621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1672621</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Mon, 02 Mar 2009 07:19:23 GMT</pubDate></item></channel></rss>