<?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[Ab VC++ version 4.0 darf sowas nicht mehr geschrieben werden: func(&amp;amp;car); wie sonst???]]></title><description><![CDATA[<p>hallo.<br />
ich habe VC++6.0<br />
habe eine structur erstellt:</p>
<pre><code class="language-cpp">typedef struct CAR
{
float mass;
float speed;
}CAR;
</code></pre>
<p>so dann habe ich ne funktion geschrieben</p>
<pre><code class="language-cpp">void input (CAR *car)
{
car-&gt;mass*3.0f;
}
</code></pre>
<p>so dann wollte ich die funktion aufrufen</p>
<pre><code class="language-cpp">CAR *car;
input(&amp;car);
</code></pre>
<p>dann kommt folgende fehlermedlung<br />
C:\Programme\Microsoft Visual Studio\MyProjects\Mini_Car_Race\Game.cpp(528) : error C2664: 'input' : Konvertierung des Parameters 1 von 'struct CAR ** ' in 'struct CAR *' nicht moeglich<br />
Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat<br />
dann habe ich in der msdn nach dem fehlercode gesucht und was gefunden da stand das mann sowas (</p>
<pre><code class="language-cpp">func(&amp;var);
</code></pre>
<p>) ab der version 4.0 nicht mehr machen darf. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /><br />
wie soll ich es denn jetzt machen???<br />
bitte helft mir.<br />
MFG<br />
DANKE <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/71411/ab-vc-version-4-0-darf-sowas-nicht-mehr-geschrieben-werden-func-amp-car-wie-sonst</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 19:19:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/71411.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 18 Apr 2004 11:55:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ab VC++ version 4.0 darf sowas nicht mehr geschrieben werden: func(&amp;amp;car); wie sonst??? on Sun, 18 Apr 2004 11:55:16 GMT]]></title><description><![CDATA[<p>hallo.<br />
ich habe VC++6.0<br />
habe eine structur erstellt:</p>
<pre><code class="language-cpp">typedef struct CAR
{
float mass;
float speed;
}CAR;
</code></pre>
<p>so dann habe ich ne funktion geschrieben</p>
<pre><code class="language-cpp">void input (CAR *car)
{
car-&gt;mass*3.0f;
}
</code></pre>
<p>so dann wollte ich die funktion aufrufen</p>
<pre><code class="language-cpp">CAR *car;
input(&amp;car);
</code></pre>
<p>dann kommt folgende fehlermedlung<br />
C:\Programme\Microsoft Visual Studio\MyProjects\Mini_Car_Race\Game.cpp(528) : error C2664: 'input' : Konvertierung des Parameters 1 von 'struct CAR ** ' in 'struct CAR *' nicht moeglich<br />
Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat<br />
dann habe ich in der msdn nach dem fehlercode gesucht und was gefunden da stand das mann sowas (</p>
<pre><code class="language-cpp">func(&amp;var);
</code></pre>
<p>) ab der version 4.0 nicht mehr machen darf. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /><br />
wie soll ich es denn jetzt machen???<br />
bitte helft mir.<br />
MFG<br />
DANKE <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/503657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/503657</guid><dc:creator><![CDATA[FrauBolaIstDumm]]></dc:creator><pubDate>Sun, 18 Apr 2004 11:55:16 GMT</pubDate></item><item><title><![CDATA[Reply to Ab VC++ version 4.0 darf sowas nicht mehr geschrieben werden: func(&amp;amp;car); wie sonst??? on Sun, 18 Apr 2004 12:03:32 GMT]]></title><description><![CDATA[<p>Klar geht das <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>
<pre><code class="language-cpp">CAR *car;
</code></pre>
<p>Was deklarierst du denn hier? Einen Zeiger auf eine CAR Struktur.</p>
<pre><code class="language-cpp">input(&amp;car);
</code></pre>
<p>Eine Zeile weiter unten: Du übergibst der Funktion die Speicheradresse des uninitialisierten Zeigers (d.h. er zeigt auf irgendeinen Speicherbereich (du hast ihn weder auf NULL gesetzt noch mit new einen Speicherbereich zugeordnet)).<br />
Mal abgesehen, dass der Zeiger nicht initialisiert wurde: Der Punkt ist, dass du also einen Zeiger auf einen Zeiger übergibst.</p>
<p>Folgender Code klappt:</p>
<pre><code class="language-cpp">CAR *car;
car = new CAR;
input(car);
delete car;
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">CAR car;
input(&amp;car);
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">void input (CAR **car)
{
(*car)-&gt;mass*3.0f;
} 

// und dann
CAR *car;
input(&amp;car);
</code></pre>
<p>Grüße Rapha</p>
]]></description><link>https://www.c-plusplus.net/forum/post/503660</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/503660</guid><dc:creator><![CDATA[Rapha]]></dc:creator><pubDate>Sun, 18 Apr 2004 12:03:32 GMT</pubDate></item><item><title><![CDATA[Reply to Ab VC++ version 4.0 darf sowas nicht mehr geschrieben werden: func(&amp;amp;car); wie sonst??? on Sun, 18 Apr 2004 12:05:08 GMT]]></title><description><![CDATA[<p>Liebe Frau Bola,</p>
<p>CAR car;<br />
func(&amp;car);</p>
<p>und damit die Frau Bola nicht dumm bleibt:</p>
<p>Die Funktion erwartet, laut deklaration einen &quot;Zeiger auf CAR&quot;.</p>
<p>nun ist aber mit &quot;car&quot; bereits ein &quot;Zeiger auf CAR&quot;, somit wäre &amp;car ein &quot;Zeiger auf enen Zeiger auf car&quot;. Was etwas ganz anderes ist.</p>
<p>VC4 hat hier eine (sicherlich nichtstandardisierte) Ausnahme gemacht.</p>
<p>MFG, Ihr</p>
]]></description><link>https://www.c-plusplus.net/forum/post/503663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/503663</guid><dc:creator><![CDATA[peterchen]]></dc:creator><pubDate>Sun, 18 Apr 2004 12:05:08 GMT</pubDate></item></channel></rss>