<?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[Pointer auf std::vector übergeben]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe mal wieder ein kleines Problem bei dem ich nicht weiterkomme. Wenn ich eine Funktion habe in der ein std::vector erstellt wird, kann ich dann einen Pointer auf diesen vector übergeben und bleibt dann der Speicher auch in der Main reserviert ? Ein Beispiel wäre:</p>
<pre><code>#include &lt;vector&gt;

std::vector &lt;double&gt;* test_Funktion(){

    std::vector &lt;double&gt; testVariable = {0,2,5,15};

return &amp;testVariable;
}

int main[]{

    std::vector &lt;double&gt;* variable;

    variable = test_Funktion();

    std::cout &lt;&lt; *variable.size() ; //Dies funktioniert nicht !?

return 0;
}
</code></pre>
<p>Also ich habe noch nicht verstanden ob das A überhaupt funktioniert und B ob dann in der Main der Speicher für die vier Double Variablen, bzw. für den vector in denen die vier Double Werte stehen reserviert bleibt.</p>
<p>Ich hoffe meine Frage wird deutlich. Ich entschuldige mich falls ich einen dummen Anfängerfehler gemacht habe der für euch offensichtlich ist und bedanke mich recht herzlich für eure Hilfe.</p>
<p>Beste Grüße und ein schönes Wochenende!<br />
rob</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/334683/pointer-auf-std-vector-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Apr 2026 09:22:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/334683.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 02 Oct 2015 16:05:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pointer auf std::vector übergeben on Fri, 02 Oct 2015 16:05:53 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe mal wieder ein kleines Problem bei dem ich nicht weiterkomme. Wenn ich eine Funktion habe in der ein std::vector erstellt wird, kann ich dann einen Pointer auf diesen vector übergeben und bleibt dann der Speicher auch in der Main reserviert ? Ein Beispiel wäre:</p>
<pre><code>#include &lt;vector&gt;

std::vector &lt;double&gt;* test_Funktion(){

    std::vector &lt;double&gt; testVariable = {0,2,5,15};

return &amp;testVariable;
}

int main[]{

    std::vector &lt;double&gt;* variable;

    variable = test_Funktion();

    std::cout &lt;&lt; *variable.size() ; //Dies funktioniert nicht !?

return 0;
}
</code></pre>
<p>Also ich habe noch nicht verstanden ob das A überhaupt funktioniert und B ob dann in der Main der Speicher für die vier Double Variablen, bzw. für den vector in denen die vier Double Werte stehen reserviert bleibt.</p>
<p>Ich hoffe meine Frage wird deutlich. Ich entschuldige mich falls ich einen dummen Anfängerfehler gemacht habe der für euch offensichtlich ist und bedanke mich recht herzlich für eure Hilfe.</p>
<p>Beste Grüße und ein schönes Wochenende!<br />
rob</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2469637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2469637</guid><dc:creator><![CDATA[rob...o.0]]></dc:creator><pubDate>Fri, 02 Oct 2015 16:05:53 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf std::vector übergeben on Fri, 02 Oct 2015 16:11:57 GMT]]></title><description><![CDATA[<p>EDIT: Vergessen: der Grund warum ich nicht das Array übergeben möchte ist um zu verhindern, dass es komplett kopiert wird. Vielleicht hilft die Info.</p>
<p>Grüße<br />
rob</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2469638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2469638</guid><dc:creator><![CDATA[rob...o.0]]></dc:creator><pubDate>Fri, 02 Oct 2015 16:11:57 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf std::vector übergeben on Fri, 02 Oct 2015 16:22:45 GMT]]></title><description><![CDATA[<p>Nein. Du gibst einen Pointer auf eine Lokale Variable zurück, da ist es ganz egal was das ist.</p>
<p>rob...o.0 schrieb:</p>
<blockquote>
<p>EDIT: Vergessen: der Grund warum ich nicht das Array übergeben möchte ist um zu verhindern, dass es komplett kopiert wird. Vielleicht hilft die Info.</p>
<p>Grüße<br />
rob</p>
</blockquote>
<p>Ein Vector ist kein Array. Move es raus oder returne es einfach so und lass NRVO seinen Job machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2469639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2469639</guid><dc:creator><![CDATA[tkausl]]></dc:creator><pubDate>Fri, 02 Oct 2015 16:22:45 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf std::vector übergeben on Fri, 02 Oct 2015 16:24:14 GMT]]></title><description><![CDATA[<p>Kaum jeman wird das als übergeben bezeichnen. Besser wäre zurückgeben.</p>
<p>Selbstverständlich ist wie immer falsch, wenn man einen Zeiger auf eine lokale Variable zurückliefert!</p>
<p>Das sollte jeder Compiler ohne kopieren hinbekommen:</p>
<pre><code class="language-cpp">#include &lt;vector&gt; 

std::vector &lt;double&gt; test_Funktion(){ 

    std::vector &lt;double&gt; testVariable = {0,2,5,15}; 

return testVariable; 
} 

int main[]{ 

    std::vector &lt;double&gt; variable = test_Funktion(); 

    std::cout &lt;&lt; variable.size() ; //Dies funktioniert nicht !? 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2469640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2469640</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Fri, 02 Oct 2015 16:24:14 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf std::vector übergeben on Fri, 02 Oct 2015 16:46:01 GMT]]></title><description><![CDATA[<p>Hust... ich sagte ja Anfängerfehler <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="😉"
    /> Also habe ich das richtige verstanden: ich returne ganz normal die vector&lt;double&gt; klasseninstanz und schwups checkt der Compiler, dass er nicht alle Werte neu kopieren muss ?!</p>
<p>Danke! Ihr seid klasse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2469642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2469642</guid><dc:creator><![CDATA[rob...o.0]]></dc:creator><pubDate>Fri, 02 Oct 2015 16:46:01 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf std::vector übergeben on Mon, 05 Oct 2015 07:58:56 GMT]]></title><description><![CDATA[<p>rob...o.0 schrieb:</p>
<blockquote>
<p>Also habe ich das richtige verstanden: ich returne ganz normal die vector&lt;double&gt; klasseninstanz und schwups checkt der Compiler, dass er nicht alle Werte neu kopieren muss ?!</p>
</blockquote>
<p>Noe, wenn du Glueck hast checkt er das.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2469870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2469870</guid><dc:creator><![CDATA[TGGC]]></dc:creator><pubDate>Mon, 05 Oct 2015 07:58:56 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf std::vector übergeben on Mon, 05 Oct 2015 09:37:56 GMT]]></title><description><![CDATA[<p>TGGC schrieb:</p>
<blockquote>
<p>rob...o.0 schrieb:</p>
<blockquote>
<p>Also habe ich das richtige verstanden: ich returne ganz normal die vector&lt;double&gt; klasseninstanz und schwups checkt der Compiler, dass er nicht alle Werte neu kopieren muss ?!</p>
</blockquote>
<p>Noe, wenn du Glueck hast checkt er das.</p>
</blockquote>
<p>Wenn man einen aktuellen Compiler benutzt dann hat man aber meistens Glück. Außerdem ist glaube ich seit C++11 wenigstens ein move garantiert wenn RVO nicht klappt.</p>
<p>An den TO: Schreibe es einfach so mit dem normalen return und wenn du wirklich absolut den schnellsten Code brauchst und du glaubst es liegt am return vom vector: Nachmessen und/oder ins Assembly schauen. Als Anfänger braucht man aber das aber eher nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2469879</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2469879</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Mon, 05 Oct 2015 09:37:56 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer auf std::vector übergeben on Mon, 05 Oct 2015 09:49:22 GMT]]></title><description><![CDATA[<p>sebi707 schrieb:</p>
<blockquote>
<p>An den TO: Schreibe es einfach so mit dem normalen return und wenn du wirklich absolut den schnellsten Code brauchst und du glaubst es liegt am return vom vector: Nachmessen und/oder ins Assembly schauen. Als Anfänger braucht man aber das aber eher nicht.</p>
</blockquote>
<p>QFT</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2469881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2469881</guid><dc:creator><![CDATA[TGGC]]></dc:creator><pubDate>Mon, 05 Oct 2015 09:49:22 GMT</pubDate></item></channel></rss>