<?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&amp;lt;void**&amp;gt;?]]></title><description><![CDATA[<p>ist hier wirklich ein reinterpret_cast nötig?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

struct PointVertex
{
	float position;
};

void mapIt(void **data)
{
	static PointVertex muh[200];

	for (int i = 0; i &lt; 200; i++)
	{
		muh[i].position = i;
	}

	*data = &amp;muh[0];
}

void main()
{
	PointVertex* m_pVertex;

	mapIt( reinterpret_cast&lt;void**&gt;(&amp;m_pVertex) ); // ist hier wirklich ein reinterpret_cast nötig?

	for (int i = 0; i &lt; 200; i++)
	{
		cout &lt;&lt; m_pVertex[i].position  &lt;&lt; endl;
	}
}
</code></pre>
<p>an der Funktion mapIt kann nichts geändert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/301124/reinterpret_cast-lt-void-gt</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 06:37:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/301124.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 20 Mar 2012 08:13:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to reinterpret_cast&amp;lt;void**&amp;gt;? on Tue, 20 Mar 2012 08:13:14 GMT]]></title><description><![CDATA[<p>ist hier wirklich ein reinterpret_cast nötig?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

struct PointVertex
{
	float position;
};

void mapIt(void **data)
{
	static PointVertex muh[200];

	for (int i = 0; i &lt; 200; i++)
	{
		muh[i].position = i;
	}

	*data = &amp;muh[0];
}

void main()
{
	PointVertex* m_pVertex;

	mapIt( reinterpret_cast&lt;void**&gt;(&amp;m_pVertex) ); // ist hier wirklich ein reinterpret_cast nötig?

	for (int i = 0; i &lt; 200; i++)
	{
		cout &lt;&lt; m_pVertex[i].position  &lt;&lt; endl;
	}
}
</code></pre>
<p>an der Funktion mapIt kann nichts geändert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193110</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193110</guid><dc:creator><![CDATA[Mops34]]></dc:creator><pubDate>Tue, 20 Mar 2012 08:13:14 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast&amp;lt;void**&amp;gt;? on Tue, 20 Mar 2012 09:07:07 GMT]]></title><description><![CDATA[<p>Mops34 schrieb:</p>
<blockquote>
<p>ist hier wirklich ein reinterpret_cast nötig?</p>
</blockquote>
<p>Das kommt drauf an, wieviel Du verändern darfst. Du kannst jedenfalls nicht das reinterpret_cast durch etwas anderes ersetzen (*), ohne dass alles andere so bleibt. Ich denke damit ist Deine Frage beantwortet.</p>
<p>(* ein C-style cast mal ausgenommen )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193131</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193131</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 20 Mar 2012 09:07:07 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast&amp;lt;void**&amp;gt;? on Tue, 20 Mar 2012 09:34:30 GMT]]></title><description><![CDATA[<p>Hm.. mapIt(..) muss( !! ) man auf jedem Fall umschreiben.. So etwas kann man doch nicht stehen lassen...Die verletzt ja mehrere wichtige Regeln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193136</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193136</guid><dc:creator><![CDATA[Travor]]></dc:creator><pubDate>Tue, 20 Mar 2012 09:34:30 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast&amp;lt;void**&amp;gt;? on Tue, 20 Mar 2012 10:03:22 GMT]]></title><description><![CDATA[<p>omg. Das ist nichtmal erträglicher C-Code <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2193146</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193146</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 20 Mar 2012 10:03:22 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast&amp;lt;void**&amp;gt;? on Tue, 20 Mar 2012 10:08:52 GMT]]></title><description><![CDATA[<p>Ja, jetzt seh' ich's auch. Da wird <a href="http://en.wikipedia.org/wiki/Undefined_behavior" rel="nofollow">undefiniertes Verhalten</a> hervorgerufen (Verletzung von §3.10/15, &quot;strict aliasing&quot;).</p>
<p>und &quot; <code>void main</code> &quot; sehe ich auch erst jetzt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Der Code stinkt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193148</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 20 Mar 2012 10:08:52 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast&amp;lt;void**&amp;gt;? on Tue, 20 Mar 2012 14:05:32 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>Der Code stinkt.</p>
</blockquote>
<p>Na dann erleuchte uns doch mal: der PointVertex in mapIt() ist static, also ist dessen Inhalt auch noch nach verlassen der Funktion gültig, demzufolge enthält m_pVertex auch gültige Daten. Bitte was soll hier also stinken?</p>
<p>Und void main(int) ist zwar ein wenig eigenwillig aber - wie dir dein Linker verraten wird - absolut zulässig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193233</guid><dc:creator><![CDATA[Donggger]]></dc:creator><pubDate>Tue, 20 Mar 2012 14:05:32 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast&amp;lt;void**&amp;gt;? on Tue, 20 Mar 2012 14:09:28 GMT]]></title><description><![CDATA[<p>Donggger schrieb:</p>
<blockquote>
<p>Und void main(int) ist zwar ein wenig eigenwillig aber - wie dir dein Linker verraten wird - absolut zulässig.</p>
</blockquote>
<p>Meiner bemängelt das als Fehler und weißt mich darauf hin, dass kein gültiger Programmeinsprungpunkt gefunden wurde.</p>
<p>Bzw sowas:<br />
main.cpp:35:14: error: ‘::main’ must return ‘int’<br />
main.cpp:35:6: warning: ‘int main(int)’ takes only zero or two arguments [-Wmain]</p>
<p>Ausserdem wurde schon direkt darauf verwiesen, warum das undefineirt ist: §3.10/15 das hat nichts mit Gültigkeitsbereichen zu tun.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193235</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Tue, 20 Mar 2012 14:09:28 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast&amp;lt;void**&amp;gt;? on Tue, 20 Mar 2012 14:16:05 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>Ausserdem wurde schon direkt darauf verwiesen, warum das undefineirt ist: §3.10/15 das hat nichts mit Gültigkeitsbereichen zu tun.</p>
</blockquote>
<p>Toller Hinweis...</p>
<p>krümelkacker schrieb:</p>
<blockquote>
<p>Da wird <a href="http://en.wikipedia.org/wiki/Undefined_behavior" rel="nofollow">undefiniertes Verhalten</a> hervorgerufen (Verletzung von §3.10/15, &quot;strict aliasing&quot;).</p>
</blockquote>
<p>Unheimlich hilfreich, wenn sich unter dem angegebenen Link nix zu diesem Paragrafen findet!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193241</guid><dc:creator><![CDATA[Donggger]]></dc:creator><pubDate>Tue, 20 Mar 2012 14:16:05 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast&amp;lt;void**&amp;gt;? on Tue, 20 Mar 2012 14:19:30 GMT]]></title><description><![CDATA[<p>&lt;2 Sekunden Google Suche liefern dir den korrekten Abschnitt. Ich kann aber verstehen, warum er das undefinierte Verhalten zu Wikipedias Link auf undefiniertes Verhalten verlinkt hat: weil häufig als nächstes die Frage gestellt wird, ob der Code denn nicht doch möglich wäre.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193242</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193242</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Tue, 20 Mar 2012 14:19:30 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast&amp;lt;void**&amp;gt;? on Tue, 20 Mar 2012 14:24:56 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>&lt;2 Sekunden Google Suche liefern dir den korrekten Abschnitt.</p>
</blockquote>
<p>Ach, tun sie das?</p>
<p>Die ersten 5 Treffer drehen sich um einen &quot;YouTube to MP3 Converter 3.10.15&quot;, dann gibt es einen Link auf ein Wikipedia-PNG, dann kommt noch vier mal das YouTube-Dingens sowie eine Seite zum Thema Vollmachten. Deine zwei Sekunden sind damit um ein vielfaches überschritten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193245</guid><dc:creator><![CDATA[Donggger]]></dc:creator><pubDate>Tue, 20 Mar 2012 14:24:56 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast&amp;lt;void**&amp;gt;? on Tue, 20 Mar 2012 14:28:12 GMT]]></title><description><![CDATA[<p>Für deine mangelnden Google-SKills kann ich nicht.</p>
<p>Wie wärs mit:</p>
<p>c++ 3.10/15</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193248</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Tue, 20 Mar 2012 14:28:12 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast&amp;lt;void**&amp;gt;? on Tue, 20 Mar 2012 14:33:07 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>Für deine mangelnden Google-SKills kann ich nicht.</p>
<p>Wie wärs mit:</p>
<p>c++ 3.10/15</p>
</blockquote>
<p>Und für deine mangelnden Google-S<strong>k</strong>ills kann ich auch nicht<strong>s</strong>. Scheinbar gehörst du auch zu denen, die zwar gerne schlaumeiern, aber bis heute nicht gelernt haben, dass Google keinen zwei Leuten das exakt identische Suchergenis liefert. Noch nie was davon gehört? Peinlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193252</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193252</guid><dc:creator><![CDATA[Donggger]]></dc:creator><pubDate>Tue, 20 Mar 2012 14:33:07 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast&amp;lt;void**&amp;gt;? on Tue, 20 Mar 2012 14:35:59 GMT]]></title><description><![CDATA[<p>Ich verlinkte &quot;undefiniertes Verhalten&quot;, weil es ein wichtiger, feststehender Begriff ist, der nicht &quot;überlesen&quot; werden sollte.</p>
<p>Lad Dir doch mal einen nicht zu verstaubten frei erhältlichen Entwurf des C++ Standards und schau darin nach Abschnitt 3.10 Absatz 15. Die findest Du auf <a href="http://open-std.org" rel="nofollow">open-std.org</a>. Alternativ kannst Du auch nach &quot;strict aliasing&quot; googeln. Im Wesentlichen darf der Compiler annehmen, dass ein Zeiger vom Typ T* und ein Zeiger vom Typ U*, wenn T und U nicht &quot;genügend verwandt&quot; sind, nicht auf dieselbe Stelle im Speicher zeigen. Basierend auf diese Annahme hat der Optimierer im Compiler mehr Freiheiten. Schreibt man Code, der sich mit dieser Annahme beißt, darf man sich nicht wundern, wenn das Programm nicht das macht, was es soll. Typischerweise tritt dieses &quot;komische&quot; Verhalten dann auf, wenn man die Optimierungsstufe des Compilers ein-/hochschaltet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193254</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 20 Mar 2012 14:35:59 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast&amp;lt;void**&amp;gt;? on Tue, 20 Mar 2012 17:07:51 GMT]]></title><description><![CDATA[<p>Donggger schrieb:</p>
<blockquote>
<p>Peinlich.</p>
</blockquote>
<p>ich hab das Ergebnis mit private-browsing getestet. Also keine Cookies, kein sonstiger personal quatsch. Schon vor meinem letzten Post. Einen Signifikanten Unterschied konnte ich nicht feststellen. Der Suchbegriff ist halt exakt genug. Ich gebe dir nicht die Aufgabe selber zu googeln, wenn ich nicht explizit glaube, dass es jeder einfach finden kann.</p>
<p>Ich erhalte deine Suchergebnisse übrigens auch, wenn ich die guten Tipps in den Wind schlage und nach 3.10.15 suche. In dem Zusammenhang hatte es schon Sinn, dass dir 3.10/15 angegeben wurde. Es sind halt unterschiedliche Dinge.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193315</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Tue, 20 Mar 2012 17:07:51 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast&amp;lt;void**&amp;gt;? on Wed, 21 Mar 2012 08:57:29 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>Ich erhalte deine Suchergebnisse übrigens auch, wenn ich die guten Tipps in den Wind schlage und nach 3.10.15 suche. In dem Zusammenhang hatte es schon Sinn, dass dir 3.10/15 angegeben wurde. Es sind halt unterschiedliche Dinge.</p>
</blockquote>
<p>Aha - und wo habe ich geschrieben, dass ich nach 3.10.15 gesucht habe? Versuch' es mal mit &quot;§3.10/15&quot; - das ist nämlich EXAKT das, was im Posting angegeben wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193470</guid><dc:creator><![CDATA[Donggger]]></dc:creator><pubDate>Wed, 21 Mar 2012 08:57:29 GMT</pubDate></item><item><title><![CDATA[Reply to reinterpret_cast&amp;lt;void**&amp;gt;? on Wed, 21 Mar 2012 11:38:22 GMT]]></title><description><![CDATA[<p>Gehirn einschalten Freund Donggger.<br />
Wenn du mit &quot;§3.10/15&quot; nix findest, dann versuch mal &quot;§3.10/15 aliasing&quot;.<br />
Oder eine von 100 anderen Möglichkeiten die zum Erfolg führen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2193570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2193570</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 21 Mar 2012 11:38:22 GMT</pubDate></item></channel></rss>