<?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 &#x2F; C-style Cast]]></title><description><![CDATA[<p>Hallo! <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="🙂"
    /></p>
<p>Welche Variante sollte ich benutzen?</p>
<p>Variante 1:</p>
<pre><code class="language-cpp">std::vector&lt; unsigned char &gt; buffer ( new unsigned char[bufferSize] );
SILLY_WINAPI_SAMPLE_STRUCT_PTR* sillySample = (SILLY_WINAPI_SAMPLE_STRUCT_PTR*) &amp;buffer[0]; // Igit! C-style Cast!
</code></pre>
<p>Variante 2:</p>
<pre><code class="language-cpp">std::vector&lt; unsigned char &gt; buffer ( new unsigned char[bufferSize] );
SILLY_WINAPI_SAMPLE_STRUCT_PTR* sillySample = reinterpret_cast&lt;SILLY_WINAPI_SAMPLE_STRUCT_PTR*&gt;(&amp;buffer[0]); // Igit! reinterpret_cast!
</code></pre>
<p>Ist beim reinterpret_cast sicher, dass der resultierende Zeiger auf die gleiche Speicheradresse, wie &amp;buffer[0] zeigt? Habe mal gelesen, dass das nicht sicher ist - oder bezieht sich das nur auf einen wiederholten reinterpret_cast zurück auf den ursprünglichen Typ?. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/240500/reinterpret_cast-c-style-cast</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 23:08:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/240500.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 07 May 2009 10:59:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to reinterpret_cast &#x2F; C-style Cast on Thu, 07 May 2009 10:59:38 GMT]]></title><description><![CDATA[<p>Hallo! <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="🙂"
    /></p>
<p>Welche Variante sollte ich benutzen?</p>
<p>Variante 1:</p>
<pre><code class="language-cpp">std::vector&lt; unsigned char &gt; buffer ( new unsigned char[bufferSize] );
SILLY_WINAPI_SAMPLE_STRUCT_PTR* sillySample = (SILLY_WINAPI_SAMPLE_STRUCT_PTR*) &amp;buffer[0]; // Igit! C-style Cast!
</code></pre>
<p>Variante 2:</p>
<pre><code class="language-cpp">std::vector&lt; unsigned char &gt; buffer ( new unsigned char[bufferSize] );
SILLY_WINAPI_SAMPLE_STRUCT_PTR* sillySample = reinterpret_cast&lt;SILLY_WINAPI_SAMPLE_STRUCT_PTR*&gt;(&amp;buffer[0]); // Igit! reinterpret_cast!
</code></pre>
<p>Ist beim reinterpret_cast sicher, dass der resultierende Zeiger auf die gleiche Speicheradresse, wie &amp;buffer[0] zeigt? Habe mal gelesen, dass das nicht sicher ist - oder bezieht sich das nur auf einen wiederholten reinterpret_cast zurück auf den ursprünglichen Typ?. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1707045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1707045</guid><dc:creator><![CDATA[Roger Wilco]]></dc:creator><pubDate>Thu, 07 May 2009 10:59:38 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast &#x2F; C-style Cast on Thu, 07 May 2009 11:26:04 GMT]]></title><description><![CDATA[<p>Variante 2 ist völlig OK.<br />
Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1707055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1707055</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Thu, 07 May 2009 11:26:04 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast &#x2F; C-style Cast on Thu, 07 May 2009 11:44:51 GMT]]></title><description><![CDATA[<p>ich duck mich schonmal, aber ich hatte noch nie ein problem, nen normalen c-cast in c++ zu benutzen. benutze nie die *_cast templates.<br />
man sollte natürlich ein a nicht auf ein b kasten, wenn b von a ableitet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1707070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1707070</guid><dc:creator><![CDATA[esskar]]></dc:creator><pubDate>Thu, 07 May 2009 11:44:51 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast &#x2F; C-style Cast on Thu, 07 May 2009 18:22:50 GMT]]></title><description><![CDATA[<p>esskar schrieb:</p>
<blockquote>
<p>aber ich hatte noch nie ein problem, nen normalen c-cast in c++ zu benutzen.</p>
</blockquote>
<p>Erinnert mich an undefiniertes Verhalten, das in 99% der Fälle gut geht. In dem anderen 1% tritt es dafür erst nach 5 Minuten Programmdurchlauf auf, ist absolut gar nicht rekonstruierbar und zerschreibt wichtigen Speicher, was man leider wiederum erst 10 Minuten später bemerkt. <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="🙂"
    /></p>
<p>Ich persönlich finde die C++-Casts übersichtlicher, weil man gerade sieht, was gemacht wird. Die damit erhaltene Sicherheit wäre mir allerdings allein schon deren Einsatz wert. Und die zusätzliche Schreibarbeit nehme ich in Kauf, zumal Casts eher selten vorkommen.</p>
<p>Das ist jedoch ein wenig Geschmackssache, im Forum gibt es auch viele Vertreter der C-Casts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1707381</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1707381</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 07 May 2009 18:22:50 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast &#x2F; C-style Cast on Thu, 07 May 2009 18:30:26 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Das ist jedoch ein wenig Geschmackssache, im Forum gibt es auch viele Vertreter der C-Casts.</p>
</blockquote>
<p>Im Großen und Ganzen hat das Geschmack nicht einmal wirklich was zu tun. Meistens ist das eher pure Schreibfaulheit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1707391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1707391</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Thu, 07 May 2009 18:30:26 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast &#x2F; C-style Cast on Fri, 08 May 2009 11:05:31 GMT]]></title><description><![CDATA[<p>Gut, also reinterpret_cast. Danke!</p>
<p>Ich dachte der reinterpret_cast sorgt nur dafür, dass ein Zeiger auf einen Speicherbereich einfach als anderer Typ interpretiert wird. Der Zeiger aber bleibt.</p>
<p>Nun hatte ich aber irgendwo gelesen, dass bei einem erneuten reinterpret_cast zurück auf den ursprünglichen Typ nicht garantiert ist, dass der Zeiger immer noch auf den selben Speicher zeigt.</p>
<pre><code class="language-cpp">int i = 1;
SampleStruct* s = reinterpret_cast&lt; SampleStruct* &gt; &amp;i;
int* j = reinterpret_Cast&lt; int* &gt; s;

// &amp;i == j --&gt; nicht definiert!
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1707694</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1707694</guid><dc:creator><![CDATA[Roger W.]]></dc:creator><pubDate>Fri, 08 May 2009 11:05:31 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast &#x2F; C-style Cast on Fri, 08 May 2009 11:13:16 GMT]]></title><description><![CDATA[<p>Roger W. schrieb:</p>
<blockquote>
<p>Nun hatte ich aber irgendwo gelesen, dass bei einem erneuten reinterpret_cast zurück auf den ursprünglichen Typ nicht garantiert ist, dass der Zeiger immer noch auf den selben Speicher zeigt.</p>
</blockquote>
<p>Doch, ist. In der Tat ist das IIRC die einzige Garantie, die der Standard bezüglich der Verwendung von reinterpret_cast&lt;&gt; einräumt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1707697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1707697</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Fri, 08 May 2009 11:13:16 GMT</pubDate></item></channel></rss>