<?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[Anfänger mit Strukturen]]></title><description><![CDATA[<p>Wie ihr schon an der Überschrift erkennt fang ich gerade erst an mit Strukturen.<br />
Mein &quot;Programm&quot; soll einfach eine Subtraktion machen, dabei soll der Umgang mit Strukturen bei der Übergabe zu anderen Funktionen geübt werden.<br />
Das Listing sieht so aus:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

typedef struct m_tStrukturTAG
{
        int number1;
        int number2;
}m_tStruktur;

typedef struct StrukturTAG
{
        int number1;
        int number2;
}Struktur;

int Subtraktion(Struktur* pStruktur)
{
    return (pStruktur-&gt;number2 - pStruktur-&gt;number1);
}

int main()
{
    m_tStruktur firstStruktur;
    int result;
    firstStruktur.number1 = 10;
    firstStruktur.number2 = 5;
    cout &lt;&lt; &quot;Die Nummer lautet: &quot; &lt;&lt; Subtraktion(&amp;firstStruktur.number1);
    cin.get();
    return 0;
}
</code></pre>
<p>Der Fehler der dazu ausgegeben wird lautet volgendermaßen:</p>
<pre><code class="language-cpp">'Subtraktion': Konvertierung des Parameters 1 von 'int *' in 'Struktur *' nicht möglich
        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine
Typumwandlung im C- oder Funktionsformat.
</code></pre>
<p>Ich weiß das ich den reinterpret_cast&lt;int*&gt; operator nutzen muss, leider weiß ich aber nicht wie.<br />
Kann mir jemand weiterhelfen.<br />
Danke schon mal im voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/133320/anfänger-mit-strukturen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 21:55:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/133320.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 16 Jan 2006 20:22:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Anfänger mit Strukturen on Mon, 16 Jan 2006 20:22:52 GMT]]></title><description><![CDATA[<p>Wie ihr schon an der Überschrift erkennt fang ich gerade erst an mit Strukturen.<br />
Mein &quot;Programm&quot; soll einfach eine Subtraktion machen, dabei soll der Umgang mit Strukturen bei der Übergabe zu anderen Funktionen geübt werden.<br />
Das Listing sieht so aus:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

typedef struct m_tStrukturTAG
{
        int number1;
        int number2;
}m_tStruktur;

typedef struct StrukturTAG
{
        int number1;
        int number2;
}Struktur;

int Subtraktion(Struktur* pStruktur)
{
    return (pStruktur-&gt;number2 - pStruktur-&gt;number1);
}

int main()
{
    m_tStruktur firstStruktur;
    int result;
    firstStruktur.number1 = 10;
    firstStruktur.number2 = 5;
    cout &lt;&lt; &quot;Die Nummer lautet: &quot; &lt;&lt; Subtraktion(&amp;firstStruktur.number1);
    cin.get();
    return 0;
}
</code></pre>
<p>Der Fehler der dazu ausgegeben wird lautet volgendermaßen:</p>
<pre><code class="language-cpp">'Subtraktion': Konvertierung des Parameters 1 von 'int *' in 'Struktur *' nicht möglich
        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine
Typumwandlung im C- oder Funktionsformat.
</code></pre>
<p>Ich weiß das ich den reinterpret_cast&lt;int*&gt; operator nutzen muss, leider weiß ich aber nicht wie.<br />
Kann mir jemand weiterhelfen.<br />
Danke schon mal im voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968381</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968381</guid><dc:creator><![CDATA[Platy]]></dc:creator><pubDate>Mon, 16 Jan 2006 20:22:52 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger mit Strukturen on Mon, 16 Jan 2006 20:42:00 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>du must schon die ganze Struktur als Pointer übergeben, und auch die Definition der Struktur kannst du vereinfachen</p>
<pre><code class="language-cpp">struct tStruktur
{
        int number1;
        int number2;
};

int Subtraktion(tStruktur* pStruktur)
{
    return (pStruktur-&gt;number2 - pStruktur-&gt;number1);
}

int main()
{
    tStruktur firstStruktur;
    int result;
    firstStruktur.number1 = 10;
    firstStruktur.number2 = 5;
    cout &lt;&lt; &quot;Die Nummer lautet: &quot; &lt;&lt; Subtraktion(&amp;firstStruktur);
    cin.get();
    return 0;
}
</code></pre>
<p>/Edit : Ach Mist, jetzt hab ich vergessen, genau den Fehler zu berichtigen den ich ankreide... danke Lord</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968396</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 16 Jan 2006 20:42:00 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger mit Strukturen on Mon, 16 Jan 2006 20:35:39 GMT]]></title><description><![CDATA[<p>Grüß Dich!</p>
<p>Platy schrieb:</p>
<blockquote>
<p>int Subtraktion(Struktur* pStruktur)<br />
{<br />
return (pStruktur-&gt;number2 - pStruktur-&gt;number1);<br />
}</p>
<p>int main()<br />
{<br />
cout &lt;&lt; &quot;Die Nummer lautet: &quot; &lt;&lt; Subtraktion(&amp;firstStruktur.number1);<br />
}<br />
[/cpp]<br />
Der Fehler der dazu ausgegeben wird lautet volgendermaßen:</p>
<pre><code class="language-cpp">'Subtraktion': Konvertierung des Parameters 1 von 'int *' in 'Struktur *' nicht möglich
        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine
Typumwandlung im C- oder Funktionsformat.
</code></pre>
<p>Ich weiß das ich den reinterpret_cast&lt;int*&gt; operator nutzen muss, leider weiß ich aber nicht wie.</p>
</blockquote>
<p>Lies die Fehlermeldung und bedenke, dass die einfachste Lösung in der Regel auch die Beste ist. Er kann eine 'int *' nicht nach 'Struktur *' verwandeln.<br />
Die Frage sollte also nicht lauten, &quot;Wie bekomme ich aus 'int *' ein 'Struktur *'?&quot;, sondern &quot;Wieso 'int *'?!?&quot;</p>
<p>Deine Funktion erwartet eine 'Struktur *', du übergibst ein 'int *', hier ist also ein Typenfehler. Du rufst die Funktion mit dem Argument (&amp;firstStruktur.number1) auf und firstStruktur.number1 ist ein int, &amp; von 'int' ist 'int *'.</p>
<p>Du möchtest aber doch die Struktur übergeben und nicht nur eine der beiden Nummern: Subtraktion(&amp;firstStruktur)</p>
<p>Ich vermute, Du bist inzwischen aber auch selbst drauf gekommen.<br />
Viel Spaß beim weiteren C-lernen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968408</guid><dc:creator><![CDATA[Xin]]></dc:creator><pubDate>Mon, 16 Jan 2006 20:35:39 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger mit Strukturen on Mon, 16 Jan 2006 20:36:21 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/7971">@akari</a>: Subtraktion(&amp;firstStruktur); <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/968410</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968410</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 16 Jan 2006 20:36:21 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger mit Strukturen on Mon, 16 Jan 2006 20:43:00 GMT]]></title><description><![CDATA[<p>Wichtig bei dieser Lösung ist allerdings, dass zwei verschiedene Strukturen Existieren, eine wird in main() verwendet und übergeben, die andere dient der Berechnung in der Funktion, daher darf ich den ersten Lösungsweg nicht benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968421</guid><dc:creator><![CDATA[Platy]]></dc:creator><pubDate>Mon, 16 Jan 2006 20:43:00 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger mit Strukturen on Mon, 16 Jan 2006 20:48:40 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Du hast recht, es gibt im Speicher nur eine Instanz der Struktur, an die Funktion wird nur eine Adresse übergeben.<br />
Du könntest noch sowas machen</p>
<pre><code class="language-cpp">int Subtraktion(tStruktur pStruktur)
{
    return (pStruktur.number2 - pStruktur.number1);
}

...
cout &lt;&lt; &quot;Die Nummer lautet: &quot; &lt;&lt; Subtraktion(firstStruktur)
</code></pre>
<p>was dann eine Übergabe per Value statt per Reference wäre.</p>
<p>Was du aber in keinem Fall brauchst sind zwei Typen, oder gar noch typedefs.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968426</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 16 Jan 2006 20:48:40 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger mit Strukturen on Mon, 16 Jan 2006 20:52:20 GMT]]></title><description><![CDATA[<p>Platy schrieb:</p>
<blockquote>
<p>Wichtig bei dieser Lösung ist allerdings, dass zwei verschiedene Strukturen Existieren, eine wird in main() verwendet und übergeben, die andere dient der Berechnung in der Funktion, daher darf ich den ersten Lösungsweg nicht benutzen.</p>
</blockquote>
<p>Jetzt wo Du es sagst... darfst Du eigentlich keine Lösung benutzen.</p>
<p>Du musst wirklich umcasten und wenn ich mir das so ansehe, wäre Vererbung hier eigentlich ein gutes Stichwort. Da Du mit Strukturen arbeitest, stehen Dir natürlich nicht die C++-Hilfen zur Verfügung, also keine Klassen.</p>
<p>Deine Struktur 'm_tStrukturTAG' könnte dann so aussehen:</p>
<pre><code class="language-cpp">typedef struct m_tStrukturTAG 
{ 
  Struktur Data;           // Der Typ Struktur wurde zuvor definiert.
}m_tStruktur;
</code></pre>
<p>und main:</p>
<pre><code class="language-cpp">int main() 
{ 
    m_tStruktur firstStruktur; 
    int result; 
    firstStruktur.Data.number1 = 10; 
    firstStruktur.Data.number2 = 5; 
    cout &lt;&lt; &quot;Die Nummer lautet: &quot; &lt;&lt; Subtraktion(&amp;firstStruktur.Data); 
    cin.get(); 
    return 0; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/968431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968431</guid><dc:creator><![CDATA[Xin]]></dc:creator><pubDate>Mon, 16 Jan 2006 20:52:20 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger mit Strukturen on Mon, 16 Jan 2006 21:03:23 GMT]]></title><description><![CDATA[<p>Danke jetzt funktioniert es, wenn auch auf einer komischen Art</p>
<pre><code class="language-cpp">typedef struct m_tStrukturTAG
{
  Struktur Data;           // Der Typ Struktur wurde zuvor definiert.
}m_tStruktur;
</code></pre>
<p>Denn dies ist ja eigentlich das gleiche als wenn ich die Struktur gleich weglassen würde und nur eine verwenden würde, in diesem Fall &quot;Struktur&quot;.<br />
Aber trotzdem Danke. <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/968442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968442</guid><dc:creator><![CDATA[Platy]]></dc:creator><pubDate>Mon, 16 Jan 2006 21:03:23 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger mit Strukturen on Mon, 16 Jan 2006 21:11:43 GMT]]></title><description><![CDATA[<p>Xin schrieb:</p>
<blockquote>
<p>Da Du mit Strukturen arbeitest, stehen Dir natürlich nicht die C++-Hilfen zur Verfügung, also keine Klassen.</p>
</blockquote>
<p>Strukturen SIND Klassen, es stehen somit sämtliche Möglichkeiten zur Verfügung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968452</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Mon, 16 Jan 2006 21:11:43 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger mit Strukturen on Tue, 17 Jan 2006 09:53:36 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>Xin schrieb:</p>
<blockquote>
<p>Da Du mit Strukturen arbeitest, stehen Dir natürlich nicht die C++-Hilfen zur Verfügung, also keine Klassen.</p>
</blockquote>
<p>Strukturen SIND Klassen, es stehen somit sämtliche Möglichkeiten zur Verfügung.</p>
</blockquote>
<p>Die meisten (alle?) Compiler setzen Strukturen und Klassen gleich, aber wenn er &quot;Strukturen&quot; lernen will, dann gehe ich mal davon aus, dass er Strukturen lernen will, wie sie in C gebräuchlich sind, ansonsten würde er vermutlich mit Klassen arbeiten wollen und sich auch das Typedef schenken können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968678</guid><dc:creator><![CDATA[Xin]]></dc:creator><pubDate>Tue, 17 Jan 2006 09:53:36 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger mit Strukturen on Tue, 17 Jan 2006 10:06:32 GMT]]></title><description><![CDATA[<p>Platy schrieb:</p>
<blockquote>
<p>Danke jetzt funktioniert es, wenn auch auf einer komischen Art</p>
<pre><code class="language-cpp">typedef struct m_tStrukturTAG
{
  Struktur Data;           // Der Typ Struktur wurde zuvor definiert.
}m_tStruktur;
</code></pre>
<p>Denn dies ist ja eigentlich das gleiche als wenn ich die Struktur gleich weglassen würde und nur eine verwenden würde, in diesem Fall &quot;Struktur&quot;.<br />
Aber trotzdem Danke. <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>
</blockquote>
<p>Aus Deinem Sourcecode sehe ich auch keinen Grund, warum Du zwei vergleichbare - um nicht zu sagen identische - Strukturen anlegst?!</p>
<p>Wenn Du nur mehrere Typen verwenden möchtest und auf Klassen umschwenken kannst oder möchtest, könntest Du es mit:</p>
<pre><code class="language-cpp">class Struktur
{
  public:
        int number1;
        int number2;
};

class m_tStruktur : public Struktur
{
};
</code></pre>
<p>einfacher haben. Da m_tStruktur auch die Daten einer 'Struktur' enthält, darfst Du sie auch an Funktionen übergeben, die eigentlich eine 'Struktur' verlangen.<br />
Ansonsten - wenn Du nur einen Typ brauchst, solltest Du vielleicht auch nur einen nehmen?!<br />
Kommt hat drauf an, was Du da grade programmmieren möchtest.</p>
<p>[edit: Tippfehler im Sourcecode geändert]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968683</guid><dc:creator><![CDATA[Xin]]></dc:creator><pubDate>Tue, 17 Jan 2006 10:06:32 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger mit Strukturen on Tue, 17 Jan 2006 17:32:43 GMT]]></title><description><![CDATA[<p>Xin schrieb:</p>
<blockquote>
<p>Die meisten (alle?) Compiler setzen Strukturen und Klassen gleich</p>
</blockquote>
<p>Alle Compiler für Standard-C++.</p>
<blockquote>
<p>, aber wenn er &quot;Strukturen&quot; lernen will, dann gehe ich mal davon aus, dass er Strukturen lernen will, wie sie in C gebräuchlich sind,</p>
</blockquote>
<p>Komisches Lernziel, wenn man C++ lernen will, sollte man C++ lernen und keine andere Sprache. Ich glaube auch nicht wirklich, dass er das selbst so will, ich tippe auf ein Lehrbuch oder einen Lehrer. Kommt ja oft genug vor, dass die -- C++-technisch gesehen -- in der Steinzeit verblieben sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/969147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/969147</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Tue, 17 Jan 2006 17:32:43 GMT</pubDate></item></channel></rss>