<?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[Vektorelement von Objekt mit arrays wird Funktion übergeben und 0tes Element des Arrays ist fehlerhaft]]></title><description><![CDATA[<p>Hallo,<br />
ich bin auf folgendes komisches Problem gestoßen:<br />
Ich habe einen Vektor V von einer Klasse A. Die Klasse A hat eine Membervariable b, die ein Feld fester größe ist.</p>
<pre><code class="language-cpp">class A
{
   double b[100];
}
</code></pre>
<p>Nun hatte ich eine Funktion aufgerufen, die ein Element dieses Vektors übernimmt:</p>
<pre><code class="language-cpp">B::Funktion(A a)
{
    cout&lt;&lt;a.b[0]&lt;&lt;&quot;\n&quot;;
    cout&lt;&lt;a.b[1]&lt;&lt;&quot;\n&quot;;
}
...
//Aufruf :
B b;
vector&lt;A&gt; V;
...
b.Funktion(V[x]);
</code></pre>
<p>Diese lieferte für das 0te Element 0 (also nicht das 0te Element, sondern Unfug) und für des 1te Elemente das 1te Element des Feldes des eingegebenen Objekts, so wie es sein soll.<br />
Als ich die Funktion so umgeschrieben habe, dass ich nicht den Vektor, sondern eine Referenz des Vektors benutzt habe...</p>
<pre><code class="language-cpp">B::Funktion(A&amp; a)
{...}
...
</code></pre>
<p>und sonst alles gleich blieb, wurde auch das 0te Element richtig übergeben, was das Problem erstmal gelöst hat. Ich versteh nur nicht, wieso die ursprüngliche Variante nicht geht.<br />
In dem Objekt stehen noch mehrere andere Felder und auch bei denen passiert das gleiche mit dem 0ten Element, während der Rest ordentlich übergeben wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/266183/vektorelement-von-objekt-mit-arrays-wird-funktion-übergeben-und-0tes-element-des-arrays-ist-fehlerhaft</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 13:30:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/266183.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 05 May 2010 09:41:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vektorelement von Objekt mit arrays wird Funktion übergeben und 0tes Element des Arrays ist fehlerhaft on Wed, 05 May 2010 09:41:42 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich bin auf folgendes komisches Problem gestoßen:<br />
Ich habe einen Vektor V von einer Klasse A. Die Klasse A hat eine Membervariable b, die ein Feld fester größe ist.</p>
<pre><code class="language-cpp">class A
{
   double b[100];
}
</code></pre>
<p>Nun hatte ich eine Funktion aufgerufen, die ein Element dieses Vektors übernimmt:</p>
<pre><code class="language-cpp">B::Funktion(A a)
{
    cout&lt;&lt;a.b[0]&lt;&lt;&quot;\n&quot;;
    cout&lt;&lt;a.b[1]&lt;&lt;&quot;\n&quot;;
}
...
//Aufruf :
B b;
vector&lt;A&gt; V;
...
b.Funktion(V[x]);
</code></pre>
<p>Diese lieferte für das 0te Element 0 (also nicht das 0te Element, sondern Unfug) und für des 1te Elemente das 1te Element des Feldes des eingegebenen Objekts, so wie es sein soll.<br />
Als ich die Funktion so umgeschrieben habe, dass ich nicht den Vektor, sondern eine Referenz des Vektors benutzt habe...</p>
<pre><code class="language-cpp">B::Funktion(A&amp; a)
{...}
...
</code></pre>
<p>und sonst alles gleich blieb, wurde auch das 0te Element richtig übergeben, was das Problem erstmal gelöst hat. Ich versteh nur nicht, wieso die ursprüngliche Variante nicht geht.<br />
In dem Objekt stehen noch mehrere andere Felder und auch bei denen passiert das gleiche mit dem 0ten Element, während der Rest ordentlich übergeben wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1892628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1892628</guid><dc:creator><![CDATA[m.]]></dc:creator><pubDate>Wed, 05 May 2010 09:41:42 GMT</pubDate></item><item><title><![CDATA[Reply to Vektorelement von Objekt mit arrays wird Funktion übergeben und 0tes Element des Arrays ist fehlerhaft on Wed, 05 May 2010 09:57:14 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class A 
{ 
public:
    A() 
    {
        b[0] = 1.23; 
        b[1] = 3.45;
    }
    double b[100]; 
}; 

void f(A a)
{
    std::cout&lt;&lt; a.b[0]&lt;&lt;&quot;\n&quot;; 
    std::cout&lt;&lt; a.b[1]&lt;&lt;&quot;\n&quot;;
}

int main()
{
    using namespace std;

    vector&lt;A&gt; V(4);

    f(V[0]);
    f(V[1]);
    f(V[2]);

	cin.get();
	return 0;
}
</code></pre>
<p>Ausgabe<br />
1.23<br />
3.45<br />
1.23<br />
3.45<br />
1.23<br />
3.45</p>
<p>???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1892639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1892639</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Wed, 05 May 2010 09:57:14 GMT</pubDate></item><item><title><![CDATA[Reply to Vektorelement von Objekt mit arrays wird Funktion übergeben und 0tes Element des Arrays ist fehlerhaft on Wed, 05 May 2010 10:09:05 GMT]]></title><description><![CDATA[<p>Ok, Vielen Dank für die schnelle Antwort!!!<br />
Dann scheint das vermutlich nicht daran zu liegen.<br />
Bleibt für mich die nächste Frage, ob ich nicht irgendwoanders noch einen unentdeckten Bug hab, der das Problem erzeugt...aber das würde jetzt zu lang werden, da versuch ichs erstmal selbst..Danke nochmal!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1892647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1892647</guid><dc:creator><![CDATA[m.]]></dc:creator><pubDate>Wed, 05 May 2010 10:09:05 GMT</pubDate></item><item><title><![CDATA[Reply to Vektorelement von Objekt mit arrays wird Funktion übergeben und 0tes Element des Arrays ist fehlerhaft on Wed, 05 May 2010 11:47:25 GMT]]></title><description><![CDATA[<p>Hab den Fehler gefunden, beim überladen des =-Operators für die Klasse A hab ich meine Schleife für die Kopie des Felds völlig unverständlicherweise erst ab dem 1sten Element loslaufen lassen.<br />
Da war ich also doch etwas voreilig mit dem Posten des Problems, Sorry!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1892672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1892672</guid><dc:creator><![CDATA[m.]]></dc:creator><pubDate>Wed, 05 May 2010 11:47:25 GMT</pubDate></item></channel></rss>