<?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[Vector per Call by Reference Füllen]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe ein kleines Problem mit Vectoren und der Funktionsparameterübergabe per Reference.<br />
Ich habe einen Vector, den ich per Funktion befüllen möchte. Dbei übegrebe ich als ersten Parameter den zu füllenden Vector und als nachfolgende Parameter die zu füllenden Werte.<br />
Allerdings scheint das ganze nicht so zu klappen wie ich will, Werte verschwinden wohl einfach aus den eintragungen - und ich habe keine Ahnung wieso.^^&quot;</p>
<p>Die zwei Funktionen:</p>
<pre><code class="language-cpp">bool insertParticleP(vector&lt;particle* &gt; &amp;arr, particle &amp;obj) {
  try {
    arr.push_back(&amp;obj);
    return true;
  } catch (...) {
    return false;
  }
}

bool insertParticleW(vector&lt;particle* &gt; &amp;arr, float x, float y, float r, float g, float b, float mass, float density) {//Einen partikel anhand gegebener Werte Pushen
  try {
    arr.push_back(new particle(x,y,r,g,b,mass,density));
    return true;
  } catch (...) {
    return false;
  }
}
</code></pre>
<p>Der Vector selbst ist definiert als</p>
<pre><code class="language-cpp">vector&lt;particle* &gt; particles;
</code></pre>
<p>Aufrufen tue ich die Funktion dann foglendermaßen:</p>
<pre><code class="language-cpp">insertParticleW(particles, 150,236,1.0,1.0,1.0,60,d_blei);
</code></pre>
<p>Erkennt jemand meinen Fehler und könnte mich gegebenenfalls verbessern?<br />
Ich danke im Voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/201262/vector-per-call-by-reference-füllen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 05 Oct 2026 19:42:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/201262.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 27 Dec 2007 11:22:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vector per Call by Reference Füllen on Thu, 27 Dec 2007 11:22:49 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe ein kleines Problem mit Vectoren und der Funktionsparameterübergabe per Reference.<br />
Ich habe einen Vector, den ich per Funktion befüllen möchte. Dbei übegrebe ich als ersten Parameter den zu füllenden Vector und als nachfolgende Parameter die zu füllenden Werte.<br />
Allerdings scheint das ganze nicht so zu klappen wie ich will, Werte verschwinden wohl einfach aus den eintragungen - und ich habe keine Ahnung wieso.^^&quot;</p>
<p>Die zwei Funktionen:</p>
<pre><code class="language-cpp">bool insertParticleP(vector&lt;particle* &gt; &amp;arr, particle &amp;obj) {
  try {
    arr.push_back(&amp;obj);
    return true;
  } catch (...) {
    return false;
  }
}

bool insertParticleW(vector&lt;particle* &gt; &amp;arr, float x, float y, float r, float g, float b, float mass, float density) {//Einen partikel anhand gegebener Werte Pushen
  try {
    arr.push_back(new particle(x,y,r,g,b,mass,density));
    return true;
  } catch (...) {
    return false;
  }
}
</code></pre>
<p>Der Vector selbst ist definiert als</p>
<pre><code class="language-cpp">vector&lt;particle* &gt; particles;
</code></pre>
<p>Aufrufen tue ich die Funktion dann foglendermaßen:</p>
<pre><code class="language-cpp">insertParticleW(particles, 150,236,1.0,1.0,1.0,60,d_blei);
</code></pre>
<p>Erkennt jemand meinen Fehler und könnte mich gegebenenfalls verbessern?<br />
Ich danke im Voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1426724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1426724</guid><dc:creator><![CDATA[makkurona]]></dc:creator><pubDate>Thu, 27 Dec 2007 11:22:49 GMT</pubDate></item><item><title><![CDATA[Reply to Vector per Call by Reference Füllen on Thu, 27 Dec 2007 11:47:34 GMT]]></title><description><![CDATA[<p>Wenn die Ausnahme nicht geworfen wird, sollte das klappen. Setz dir an den Anfang der Funktion doch einen Breakpoint und guck zu, was so passiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1426735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1426735</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Thu, 27 Dec 2007 11:47:34 GMT</pubDate></item><item><title><![CDATA[Reply to Vector per Call by Reference Füllen on Thu, 27 Dec 2007 11:55:02 GMT]]></title><description><![CDATA[<p>Problematisch ist die Funktion insertParticleP: Woher weiss die Funktion, wie lang das übergebene Objekt, dessen Zeiger sie gerade in den Vector stopft, lebt? Wenn es sich um ein lokales Objekt in der aufrufenden Funktion handelt, hast Du nach deren Abarbeitung einen schlechten Zeiger im Vector.</p>
<p>Achja: Exceptions in jeder Funktion fangen und in einen Fehlercode umwandeln zu wollen führt den Sinn von Exceptions ad absurdum. Der Sinn ist ja gerade, Fehler an höherer Stelle zu fangen (AFAIK kann push_back hier eh nur bad_alloc werfen, und da kannst Du meist auf sehr hoher Ebene - evtl. bereits in main() - kapitulieren und das Programm beenden)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1426741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1426741</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 27 Dec 2007 11:55:02 GMT</pubDate></item><item><title><![CDATA[Reply to Vector per Call by Reference Füllen on Thu, 27 Dec 2007 11:59:29 GMT]]></title><description><![CDATA[<p>Mhhh...sehr verwirrend.</p>
<p>Die partikel werden ja auch eingetragen, aber merkwürdigerweise haben sie dann keine Werte mehr... es scheint immer nur 0 oder NULL als Wert innerhalb der Objekte eingetragen zu sein. (Ich lasse mir ein paar Werte Testweise ausgeben...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1426748</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1426748</guid><dc:creator><![CDATA[makkurona]]></dc:creator><pubDate>Thu, 27 Dec 2007 11:59:29 GMT</pubDate></item><item><title><![CDATA[Reply to Vector per Call by Reference Füllen on Thu, 27 Dec 2007 12:01:23 GMT]]></title><description><![CDATA[<p>Debug mal anständig ... dann siehst du was drin steht ... nicht was testweise ausgeben ... was soll das denn geben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1426750</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1426750</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 27 Dec 2007 12:01:23 GMT</pubDate></item><item><title><![CDATA[Reply to Vector per Call by Reference Füllen on Thu, 27 Dec 2007 12:07:38 GMT]]></title><description><![CDATA[<p>makkurona schrieb:</p>
<blockquote>
<p>Die partikel werden ja auch eingetragen, aber merkwürdigerweise haben sie dann keine Werte mehr... es scheint immer nur 0 oder NULL als Wert innerhalb der Objekte eingetragen zu sein. (Ich lasse mir ein paar Werte Testweise ausgeben...)</p>
</blockquote>
<p>Vielleicht macht der Konstruktor von particle auch nicht ganz das, was er soll?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1426752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1426752</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Thu, 27 Dec 2007 12:07:38 GMT</pubDate></item><item><title><![CDATA[Reply to Vector per Call by Reference Füllen on Thu, 27 Dec 2007 12:47:10 GMT]]></title><description><![CDATA[<p>Deswegen soll der debuggen ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1426773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1426773</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 27 Dec 2007 12:47:10 GMT</pubDate></item><item><title><![CDATA[Reply to Vector per Call by Reference Füllen on Thu, 27 Dec 2007 12:52:17 GMT]]></title><description><![CDATA[<p>Er trägt die Werte ein, da bin ich mir sicher, ich hatte die Klasse bereits in einem anderen Projekt verwendet, da aber die Vectoren anders befüllt. Diesmal ist es einfacher (und im Endeffekt erfüllts hoffentlich auch seinen Zweck) es auf diese Art und Weise zu lösen.</p>
<p>PS: Ich habe mal &quot;ordentlich debugged&quot;. Ich lasse mir alle Werte in der Main, wo ich sie füllen lasse in eine Datei schreiben und einmal in einer anderen Routine.</p>
<p>Okay...ich habe etwas getestet, während ich das ganze hier geschrieben habe...und bin zu einem Ergebnis gekommen. -<em>-<br />
War ein Schönheitsfehler innerhalb einer zum Debuggen benutzten Funktion. -</em>- Sie hat wohl irgendwie Probleme mit den zurückgegebenen Werten. *seufz*</p>
<p>Ich danke recht herzlich, jetzt dürfte es funktionieren. &gt;_&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1426777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1426777</guid><dc:creator><![CDATA[makkurona]]></dc:creator><pubDate>Thu, 27 Dec 2007 12:52:17 GMT</pubDate></item><item><title><![CDATA[Reply to Vector per Call by Reference Füllen on Thu, 27 Dec 2007 13:52:33 GMT]]></title><description><![CDATA[<p>Hmm schön das es nun geht, aber ließ dir dennoch mal ein Tutorial zum Debuggen durch ... was du da betreibst ist mehr &quot;loggen&quot; <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/1426804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1426804</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 27 Dec 2007 13:52:33 GMT</pubDate></item></channel></rss>