<?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[float to void*]]></title><description><![CDATA[<p>Hallo,</p>
<p>vorneweg: Ich weiss, dass void* wirklich hässlich ist, aber meine Idee war das auch nicht <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 habe eine Bibliothek, die mir eine Funktion bereitstellt, welche leider einen (float)-Parameter als void* erwartet.<br />
Also muss ich float nach void* casten, aber bei allen bisherigen Versuchen beschwert sich mein Compiler aufs Bitterste.<br />
Wie macht man so etwas?</p>
<p>Danke.</p>
<p>lg<br />
sinthoras</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/268610/float-to-void</link><generator>RSS for Node</generator><lastBuildDate>Tue, 01 Sep 2026 17:52:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/268610.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 11 Jun 2010 16:13:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 16:13:48 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>vorneweg: Ich weiss, dass void* wirklich hässlich ist, aber meine Idee war das auch nicht <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 habe eine Bibliothek, die mir eine Funktion bereitstellt, welche leider einen (float)-Parameter als void* erwartet.<br />
Also muss ich float nach void* casten, aber bei allen bisherigen Versuchen beschwert sich mein Compiler aufs Bitterste.<br />
Wie macht man so etwas?</p>
<p>Danke.</p>
<p>lg<br />
sinthoras</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910818</guid><dc:creator><![CDATA[Sinthoras]]></dc:creator><pubDate>Fri, 11 Jun 2010 16:13:48 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 16:16:44 GMT]]></title><description><![CDATA[<p>Lässt sich mit reinterpret_cast machen.<br />
Bist du sicher, dass die Funktion nicht einen nach void* gecasteten float-Zeiger erwartet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910820</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Fri, 11 Jun 2010 16:16:44 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 16:18:41 GMT]]></title><description><![CDATA[<p>Nein, bin ich nicht.<br />
Die Dokumentation ist naja...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910821</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910821</guid><dc:creator><![CDATA[Sinthoras]]></dc:creator><pubDate>Fri, 11 Jun 2010 16:18:41 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 16:26:08 GMT]]></title><description><![CDATA[<p>reinterpret_cast&lt;&gt; hatte ich auch schon versucht, liefert:<br />
error: invalid cast from type 'float' to type 'void*'<br />
Ich versuche es mal mit dem Pointer, danke.</p>
<p>Edit: Alles klar, er kompiliert jetzt.<br />
Mal gucken, ob das Gerät das so akzeptiert, das ist gerade nicht zugegen <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 />
Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910823</guid><dc:creator><![CDATA[Sinthoras]]></dc:creator><pubDate>Fri, 11 Jun 2010 16:26:08 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 16:30:47 GMT]]></title><description><![CDATA[<p>Die Konvertierung von <code>T*</code> nach <code>void*</code> geht implizit, wobei <code>T</code> ein beliebiger Datentyp ist. In umgekehrter Richtung benötigst du <code>static_cast</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910828</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 11 Jun 2010 16:30:47 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 16:32:35 GMT]]></title><description><![CDATA[<p>float direkt nach void* geht tatsächlich nicht.<br />
Falls es sich herausstellt, dass das Gerät doch keinen Zeiger erwartet, geht es notfalls auch mit Umweg über int:</p>
<pre><code class="language-cpp">float float_val=5;
void* blubb=reinterpret_cast&lt;void*&gt;(*reinterpret_cast&lt;int*&gt;(&amp;float_val));
</code></pre>
<p>Setzt voraus, dass sizeof(void*)=sizeof(int)=sizeof(float).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910831</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Fri, 11 Jun 2010 16:32:35 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 16:35:49 GMT]]></title><description><![CDATA[<p>&amp;float_val ist aber wieder ein float*.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910833</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 11 Jun 2010 16:35:49 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 16:37:25 GMT]]></title><description><![CDATA[<p>Sinthoras, könntest du uns die Dokumentation der Funktion posten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910836</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910836</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 11 Jun 2010 16:37:25 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 16:40:15 GMT]]></title><description><![CDATA[<p>Liebend gern würde ich die posten...<br />
Das einzige, was da dokumentiert ist, ist genau der Aufruf:<br />
funktion( . , ., . , void *param);<br />
Und da muss eine Zahl rein, ein float eben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910838</guid><dc:creator><![CDATA[Sinthoras]]></dc:creator><pubDate>Fri, 11 Jun 2010 16:40:15 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 16:41:16 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>&amp;float_val ist aber wieder ein float*.</p>
</blockquote>
<p>Wird aber als int* wieder dereferenziert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910840</guid><dc:creator><![CDATA[Athar]]></dc:creator><pubDate>Fri, 11 Jun 2010 16:41:16 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 16:46:49 GMT]]></title><description><![CDATA[<p>Ich denke eigentlich eher, dass ein Zeiger (also <code>float*</code> ) erwartet wird. Man kann doch von vernünftigen Menschen nicht erwarten, dass sie eine Fliesskommazahl gewaltsam in einen <code>void</code> -Zeiger deformieren...</p>
<p>Funktioniert denn der Aufruf mit <code>&amp;float_val</code> ? Semantisch zur Laufzeit meine ich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910844</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 11 Jun 2010 16:46:49 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 16:55:27 GMT]]></title><description><![CDATA[<p>verstehe ich hier etwas falsch, oder warum nicht einfach so?</p>
<pre><code class="language-cpp">void foo(void* param)
{
   float floatVar = *static_cast&lt;float*&gt;(param);
   std::cout &lt;&lt; floatVar &lt;&lt; std::endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
   float floatVar = 3.14;

   foo(&amp;floatVar);

   return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1910853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910853</guid><dc:creator><![CDATA[BigNeal]]></dc:creator><pubDate>Fri, 11 Jun 2010 16:55:27 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 16:57:20 GMT]]></title><description><![CDATA[<p>BigNeal schrieb:</p>
<blockquote>
<p>verstehe ich hier etwas falsch, oder warum nicht einfach so?</p>
</blockquote>
<p>Wir sind ja nach wie vor am spekulieren. Mein Vorschlag war übrigens der selbe... <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/1910857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910857</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 11 Jun 2010 16:57:20 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 16:59:39 GMT]]></title><description><![CDATA[<p>man sollte nicht TV schauen neben dem Tippen <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>
<blockquote>
<p>Ich denke eigentlich eher, dass ein Zeiger (also float*) erwartet wird. Man kann doch von vernünftigen Menschen nicht erwarten, dass sie eine Fliesskommazahl gewaltsam in einen void-Zeiger deformieren...</p>
</blockquote>
<p>genau dem schliesse ich mich an. Wenn ich void* sehe, gehe ich primär mal davon aus, dass ein Zeiger auf ein Objekt/Variable erwartet wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910858</guid><dc:creator><![CDATA[BigNeal]]></dc:creator><pubDate>Fri, 11 Jun 2010 16:59:39 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 17:06:56 GMT]]></title><description><![CDATA[<p>Auch wenns es nicht mehr so ganz passt, würde ich gern noch eine Frage nachschieben:<br />
Eine Funktion erwartet einen **int, in die die Ausgabe geschrieben wird.<br />
Wie bekomme ich sowas in ein int array?</p>
<p>Edit: Also der **int soll ein Rückgabeparameter sein, falls das jetzt ungenau formuliert war.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910863</guid><dc:creator><![CDATA[Sinthoras]]></dc:creator><pubDate>Fri, 11 Jun 2010 17:06:56 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 17:08:34 GMT]]></title><description><![CDATA[<p>Ich hoffe mal, die Funktion will wirklich einen float* als void* haben.<br />
Aber bei dieser Bibliothek sollte man alle andere nicht ausschliessen <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 />
Danke auf jeden Fall.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910864</guid><dc:creator><![CDATA[Sinthoras]]></dc:creator><pubDate>Fri, 11 Jun 2010 17:08:34 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 17:14:22 GMT]]></title><description><![CDATA[<p>Sinthoras schrieb:</p>
<blockquote>
<p>Edit: Also der **int soll ein Rückgabeparameter sein, falls das jetzt ungenau formuliert war.</p>
</blockquote>
<p>Danke, aber dieser Satz ist die Ungenauigkeit höchstselbst. Entscheide dich für Rückgabewert oder Parameter. Meinst du etwa Output-Parameter?</p>
<p>Und <code>**int</code> gibts nicht, wenn schon <code>int**</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910865</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 11 Jun 2010 17:14:22 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 17:14:45 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Sinthoras schrieb:</p>
<blockquote>
<p>Edit: Also der **int soll ein Rückgabeparameter sein, falls das jetzt ungenau formuliert war.</p>
</blockquote>
<p>Danke, aber dieser Satz ist die Ungenauigkeit höchstselbst. Entscheide dich für Rückgabewert oder Parameter.</p>
<p>Und <code>**int</code> gibts nicht, wenn schon <code>int**</code> .</p>
</blockquote>
<p>Ja, klar. int** meine ich, sorry <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 übergebe der Funktion einen Parameter, in den sie das Ergebnis schreibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910867</guid><dc:creator><![CDATA[Sinthoras]]></dc:creator><pubDate>Fri, 11 Jun 2010 17:14:45 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 17:20:49 GMT]]></title><description><![CDATA[<p>Theoretisch macht man das so:</p>
<pre><code class="language-cpp">int **array = new int*[2];
array[0] = new int[5];
array[1] = new int[7];
mysterioese_funktion(array);
</code></pre>
<p>Ich denke mal nicht, dass die Funktion ein direktes 2-dimensionales Array erwartet, dann wäre der Typ z.B. <code>int(*)[10]</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910873</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Fri, 11 Jun 2010 17:20:49 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 17:20:56 GMT]]></title><description><![CDATA[<p>Also doch Output-Parameter. <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>Sorry, das hat mich zuerst tatsächlich verwirrt. Doch jetzt, wo die formale Verwirrung geklärt ist, können wir uns voll und ganz der inhaltlichen zuwenden. <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>
<p>Sinthoras schrieb:</p>
<blockquote>
<p>Eine Funktion erwartet einen [int**], in die die Ausgabe geschrieben wird.<br />
Wie bekomme ich sowas in ein int array?</p>
</blockquote>
<p>Hast du ausserhalb der Funktion ein <code>int[size]</code> -Array und willst das in einen <code>int**</code> rumwürgen? Das geht nicht vernünftig. Oder hast du ein <code>int[width][height]</code> -Array?</p>
<p>Sag am besten, was (semantisch, nicht nur Typ) der <code>int**</code> -Parameter repräsentiert und was du als Aufrufer damit anfangen willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910874</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910874</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 11 Jun 2010 17:20:56 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 17:26:52 GMT]]></title><description><![CDATA[<p>ipsec schrieb:</p>
<blockquote>
<p>Theoretisch macht man das so:</p>
<pre><code class="language-cpp">int **array = new int*[2];
array[0] = new int[5];
array[1] = new int[7];
mysterioese_funktion(array);
</code></pre>
</blockquote>
<p>Wenn, dann aber ohne Initialisierung vor dem Aufruf, es handelt sich ja um einen reinen Output-Parameter.</p>
<p>Andererseits kann man dann wegen der Kopie des <code>int**</code> nur einen <code>int*</code> innerhalb der Funktion verändern, was einem <code>int*&amp;</code> -Parameter gleichkommen würde. Aber es geht doch um Arrays. Ein <code>int[size]</code> -Array kanns wegen der zweifachen Indirektion jedoch nicht sein, zumindest nicht ohne Würgen.</p>
<p>Fragen über Fragen... <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/1910875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910875</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 11 Jun 2010 17:26:52 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 17:28:40 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Wenn, dann aber ohne Initialisierung vor dem Aufruf, es handelt sich ja um einen reinen Output-Parameter.</p>
</blockquote>
<p>Naja ich dachte an sowas:</p>
<pre><code class="language-cpp">void mysterioese_funktion(int **out)
{
    out[0][3] = 42;
    out[1][5] = 10^10^10^32;
}
</code></pre>
<p>Aber natürlich kann ich mich auch irren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910880</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Fri, 11 Jun 2010 17:28:40 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 17:32:14 GMT]]></title><description><![CDATA[<p>Nein, das macht Sinn. Ich dachte eben, das Array selbst würde von der Funktion erzeugt, dabei sind es nur die Elemente. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1910881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910881</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 11 Jun 2010 17:32:14 GMT</pubDate></item><item><title><![CDATA[Reply to float to void* on Fri, 11 Jun 2010 22:42:02 GMT]]></title><description><![CDATA[<p>Die Funktion gibt mir die Anzahl der vorhandenen Module in einem Gerät und zu jedem Modul die Anzahl der Kanäle.</p>
<p>Es gibt keine festen Vorgaben an die Struktur, wie ich das abspeichern muss. Hauptsache, ich speicher es irgendwie. D.h. ich kann mich mit dem Aufbau des Arrays nach Belieben der Funktion anpassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1911018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1911018</guid><dc:creator><![CDATA[Sinthoras]]></dc:creator><pubDate>Fri, 11 Jun 2010 22:42:02 GMT</pubDate></item></channel></rss>