<?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[globale dynamische arrays, globale vector? - Performance]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich melde mich mal wieder mit einem Problem: Ich habe die Integrand Funktion im unteren Beispiel, die so bestehen bleiben muss und der ich keine weiteren Pointer, Variabeln außer die eine eingetragene übergeben kann, da die Funktion in zahlreichen Unterprogrammen aufgerufen wird, sodass an den Stellen überall der Code angepasst werden müsste. Diese Funktion wird in der main aufgerufen und die spval Funktion innerhalb von integrand braucht Zugriff auf das Array x und greift über x[Wert] auf die Array Inhalte lesend zu. Dieser Wert (also x) werden aber erst in der main berechnet und sind somit der integrand-Funktion unbekannt. Ich habe es bisher so gelöst (stark abstrahiert dargestellt, da es um viel viel mehr arrays von sehr großer Größe geht)</p>
<pre><code>vector&lt;douuble&gt; v; //globaler Vektor
double integrand(double variable){
	double sx;
	spval(n, variable, &amp;v[0], sx); //hier braucht spval Zugriff auf das array oder hier den Vektor
	return sqrt(sx * sx)
}
double berechnung (double* wert1, double *berechnung){
       for(...){
            berechnung[laufvariable]=wert1[laufvariable]...
                        ....
       }
}

int main (){
       double ergebnis; 
       double* x= new double (irgendeine_groesse);
       berechnung(messwert, x); //hier kann ich nur ein &quot;normales&quot; array benutzen, da mit x[laufvariable] so schreibend zugegriffen wird, was ja bei einem vektor nicht funktioniert (zumindest gibt visual studio dann einen Fehler aus)

       for (int l=0; l&lt;irgendeine_groesse; l++){
              v.push_back(x[l]);
       }

       ergebnis = integrand (irgendeine_variable); //Zugriff auf x über spval muss der Funktion ja global bekannt sein
}
</code></pre>
<p>Wie kann ich das ganze dynamisch und global anlegen, sodass alle Funktionen darauf zugreifen können. Meine einzige bisher funktionierende Möglichkeit wäre die Obengenannte im Beispiel... aber aus Performance-Gründen nimmt, da es sich um sehr sehr viele Werte handelt, die for-Schleife in der main einige Zeit in Anspruch, die ich mir sehr gerne sparen würde. Kann man dynamischen Speicher global anlegen (meine bisheren Umsetzungen sind gescheitert) um nicht diesen Umweg über den globalen vektor gehen zu müssen?</p>
<p>Für jegliche Hinweise und Ideen bin ich Ihnen sehr dankbar! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/338182/globale-dynamische-arrays-globale-vector-performance</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 20:04:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/338182.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 28 May 2016 19:01:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to globale dynamische arrays, globale vector? - Performance on Sat, 28 May 2016 19:01:57 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich melde mich mal wieder mit einem Problem: Ich habe die Integrand Funktion im unteren Beispiel, die so bestehen bleiben muss und der ich keine weiteren Pointer, Variabeln außer die eine eingetragene übergeben kann, da die Funktion in zahlreichen Unterprogrammen aufgerufen wird, sodass an den Stellen überall der Code angepasst werden müsste. Diese Funktion wird in der main aufgerufen und die spval Funktion innerhalb von integrand braucht Zugriff auf das Array x und greift über x[Wert] auf die Array Inhalte lesend zu. Dieser Wert (also x) werden aber erst in der main berechnet und sind somit der integrand-Funktion unbekannt. Ich habe es bisher so gelöst (stark abstrahiert dargestellt, da es um viel viel mehr arrays von sehr großer Größe geht)</p>
<pre><code>vector&lt;douuble&gt; v; //globaler Vektor
double integrand(double variable){
	double sx;
	spval(n, variable, &amp;v[0], sx); //hier braucht spval Zugriff auf das array oder hier den Vektor
	return sqrt(sx * sx)
}
double berechnung (double* wert1, double *berechnung){
       for(...){
            berechnung[laufvariable]=wert1[laufvariable]...
                        ....
       }
}

int main (){
       double ergebnis; 
       double* x= new double (irgendeine_groesse);
       berechnung(messwert, x); //hier kann ich nur ein &quot;normales&quot; array benutzen, da mit x[laufvariable] so schreibend zugegriffen wird, was ja bei einem vektor nicht funktioniert (zumindest gibt visual studio dann einen Fehler aus)

       for (int l=0; l&lt;irgendeine_groesse; l++){
              v.push_back(x[l]);
       }

       ergebnis = integrand (irgendeine_variable); //Zugriff auf x über spval muss der Funktion ja global bekannt sein
}
</code></pre>
<p>Wie kann ich das ganze dynamisch und global anlegen, sodass alle Funktionen darauf zugreifen können. Meine einzige bisher funktionierende Möglichkeit wäre die Obengenannte im Beispiel... aber aus Performance-Gründen nimmt, da es sich um sehr sehr viele Werte handelt, die for-Schleife in der main einige Zeit in Anspruch, die ich mir sehr gerne sparen würde. Kann man dynamischen Speicher global anlegen (meine bisheren Umsetzungen sind gescheitert) um nicht diesen Umweg über den globalen vektor gehen zu müssen?</p>
<p>Für jegliche Hinweise und Ideen bin ich Ihnen sehr dankbar! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497326</guid><dc:creator><![CDATA[Kaiserstaedter]]></dc:creator><pubDate>Sat, 28 May 2016 19:01:57 GMT</pubDate></item><item><title><![CDATA[Reply to globale dynamische arrays, globale vector? - Performance on Sat, 28 May 2016 19:18:18 GMT]]></title><description><![CDATA[<p>Ich bin mir nicht sicher ob ich dein Problem verstehe, aber du kannst einfach einen globalen Pointer haben der dann auf irgendeinen dynamisch reservierten Speicher Bereich zeigt.</p>
<p>Kaiserstaedter schrieb:</p>
<blockquote>
<p>hier kann ich nur ein &quot;normales&quot; array benutzen, da mit x[laufvariable] so schreibend zugegriffen wird, was ja bei einem vektor nicht funktioniert (zumindest gibt visual studio dann einen Fehler aus)</p>
</blockquote>
<p>Nein du kannst auch einen vector nutzen. Du musst halt vorher den vector entsprechend vergrößern (mit <code>.resize()</code> ) und dann die Adresse vom ersten Element übergeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497327</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497327</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Sat, 28 May 2016 19:18:18 GMT</pubDate></item><item><title><![CDATA[Reply to globale dynamische arrays, globale vector? - Performance on Sat, 28 May 2016 19:27:05 GMT]]></title><description><![CDATA[<p>vielen Dank für die Antwort!<br />
Habe schon versucht den vector mit resize() bzw. reserve() auf Größe zu bringen und dann damit zu agieren, aber weil ich in der Funktion mit der []-Form auf x[..] schreiben muss, geht das mit dem Vektor nicht,</p>
<p>aber mit dem globalen Pointer ist eine gute Idee !! Danke dafür</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497328</guid><dc:creator><![CDATA[Kaiserstaedter]]></dc:creator><pubDate>Sat, 28 May 2016 19:27:05 GMT</pubDate></item><item><title><![CDATA[Reply to globale dynamische arrays, globale vector? - Performance on Sat, 28 May 2016 19:36:02 GMT]]></title><description><![CDATA[<p>Kaiserstaedter schrieb:</p>
<blockquote>
<p>aber weil ich in der Funktion mit der []-Form auf x[..] schreiben muss, geht das mit dem Vektor nicht</p>
</blockquote>
<p>Wieso nicht? Wenn der Code</p>
<pre><code>double* x = new double(irgendeine_groesse);
berechnung(messwert, x);
</code></pre>
<p>funktioniert, muss auch</p>
<pre><code>vector&lt;double&gt; x;  // oder ohne resize könnte man auch direkt vector&lt;double&gt; x(irgendeine_groesse); schreiben
x.resize(irgendeine_groesse);
berechnung(messwert, x.data());
</code></pre>
<p>funktionieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497329</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Sat, 28 May 2016 19:36:02 GMT</pubDate></item><item><title><![CDATA[Reply to globale dynamische arrays, globale vector? - Performance on Sat, 28 May 2016 21:07:56 GMT]]></title><description><![CDATA[<p>hier ein simples Beispielprogrmm:</p>
<pre><code>#include &lt;vector&gt;
#include &lt;iostream&gt;

using namespace std;

int main(){

	vector&lt;double&gt; v;
	v.resize(4);
	v[0] = 0.0;
	v[1] = 1.1;
	v[2] = 2.2;
	v[3] = 3.3;
	cout &lt;&lt; v[0] &lt;&lt; v[1] &lt;&lt; v[2] &lt;&lt; v[3] &lt;&lt; endl;

	return 0;
}
</code></pre>
<p>funktioniert bei mir nicht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497334</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497334</guid><dc:creator><![CDATA[Kaiserstaedter]]></dc:creator><pubDate>Sat, 28 May 2016 21:07:56 GMT</pubDate></item><item><title><![CDATA[Reply to globale dynamische arrays, globale vector? - Performance on Sat, 28 May 2016 21:13:02 GMT]]></title><description><![CDATA[<p>In wie fern funktioniert das nicht?</p>
<p>Kompiliert es nicht (wie lautet die Fehlermeldung etc.)?<br />
Gibt es nicht das gewünschte Resultat (was kommt raus, was erwartest du)?</p>
<p>Ich sehe jedenfalls keinen Fehler in dem Beispielprogramm und es läuft auch so, wie man das erwarten würde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497335</guid><dc:creator><![CDATA[wob]]></dc:creator><pubDate>Sat, 28 May 2016 21:13:02 GMT</pubDate></item><item><title><![CDATA[Reply to globale dynamische arrays, globale vector? - Performance on Sat, 28 May 2016 21:15:08 GMT]]></title><description><![CDATA[<p>aber trotzdem danke, sebi, mit dem globalen pointer klappt esbestens <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
manchmal sieht man vor lauter Bäume den Wald nicht mehr, das war bei mir der Fall :</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497336</guid><dc:creator><![CDATA[Kaiserstaedter]]></dc:creator><pubDate>Sat, 28 May 2016 21:15:08 GMT</pubDate></item><item><title><![CDATA[Reply to globale dynamische arrays, globale vector? - Performance on Sat, 28 May 2016 21:17:23 GMT]]></title><description><![CDATA[<p>bei mir bei visual studio sagt der &quot;debug assersation failed&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497337</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497337</guid><dc:creator><![CDATA[Kaiserstaedter]]></dc:creator><pubDate>Sat, 28 May 2016 21:17:23 GMT</pubDate></item><item><title><![CDATA[Reply to globale dynamische arrays, globale vector? - Performance on Sat, 28 May 2016 21:20:03 GMT]]></title><description><![CDATA[<p>irgendwie ist das merkwürdig, unter Ubuntu g++ läuft es tatsächlich, aber bei visual studio gibt der mir den Fehler aus, jetzt verseth ich gar nichts mehr <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497338</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497338</guid><dc:creator><![CDATA[Kaiserstaedter]]></dc:creator><pubDate>Sat, 28 May 2016 21:20:03 GMT</pubDate></item><item><title><![CDATA[Reply to globale dynamische arrays, globale vector? - Performance on Sat, 28 May 2016 21:56:27 GMT]]></title><description><![CDATA[<p>Kaiserstaedter schrieb:</p>
<blockquote>
<p>irgendwie ist das merkwürdig, unter Ubuntu g++ läuft es tatsächlich, aber bei visual studio gibt der mir den Fehler aus, jetzt verseth ich gar nichts mehr <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>Das glaube ich dir nicht. Du benutzt nicht den gezeigten Code.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497342</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sat, 28 May 2016 21:56:27 GMT</pubDate></item><item><title><![CDATA[Reply to globale dynamische arrays, globale vector? - Performance on Sat, 28 May 2016 21:59:33 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>Du benutzt nicht den gezeigten Code.</p>
</blockquote>
<p>Oder sein Visual Studio ist kaputt. Der Code muss wie gezeigt jedenfalls funktionieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497343</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Sat, 28 May 2016 21:59:33 GMT</pubDate></item><item><title><![CDATA[Reply to globale dynamische arrays, globale vector? - Performance on Sat, 28 May 2016 22:09:46 GMT]]></title><description><![CDATA[<p><a href="http://www.bilder-upload.eu/show.php?file=b8b37f-1464473311.png" rel="nofollow"></a><a href="http://www.bilder-upload.eu/thumb/b8b37f-1464473311.png" rel="nofollow">http://www.bilder-upload.eu/thumb/b8b37f-1464473311.png</a></p>
<p>ich weiß zwar nicht, warum du mir das nicht glaubst,aber wenn das bei mir so ist kann ich jetzt auf anhieb nichts ändern... frag mich nicht warum</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497344</guid><dc:creator><![CDATA[Kaiserstaedter]]></dc:creator><pubDate>Sat, 28 May 2016 22:09:46 GMT</pubDate></item><item><title><![CDATA[Reply to globale dynamische arrays, globale vector? - Performance on Sat, 28 May 2016 22:17:44 GMT]]></title><description><![CDATA[<p>Kaiserstaedter schrieb:</p>
<blockquote>
<p><a href="http://www.bilder-upload.eu/show.php?file=b8b37f-1464473311.png" rel="nofollow"></a><a href="http://www.bilder-upload.eu/thumb/b8b37f-1464473311.png" rel="nofollow">http://www.bilder-upload.eu/thumb/b8b37f-1464473311.png</a></p>
<p>ich weiß zwar nicht, warum du mir das nicht glaubst</p>
</blockquote>
<p>Weil das Programm korrekt ist und Visual Studio ganz sicher nicht an so einem trivialen Programm scheitert. Dein &quot;Beweise&quot; zeigt natürlich geschickterweise nicht, ob dort resize oder reserve steht (falls es überhaupt der Code ist, der zu dem Fehler führte).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497345</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497345</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sat, 28 May 2016 22:17:44 GMT</pubDate></item><item><title><![CDATA[Reply to globale dynamische arrays, globale vector? - Performance on Sat, 28 May 2016 22:26:58 GMT]]></title><description><![CDATA[<p><a href="http://www.bilder-upload.eu/show.php?file=315e9a-1464474252.png" rel="nofollow"></a><a href="http://www.bilder-upload.eu/thumb/315e9a-1464474252.png" rel="nofollow">http://www.bilder-upload.eu/thumb/315e9a-1464474252.png</a></p>
<p>ist ja echt lustig, hier... auch wenn ich euch nichts beweisen muss oder den Weiten des Internets Rechtfertigung bieten muss, aber bitteschön auch jetzt klappt es noch nicht,</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497346</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497346</guid><dc:creator><![CDATA[Kaiserstaedter]]></dc:creator><pubDate>Sat, 28 May 2016 22:26:58 GMT</pubDate></item><item><title><![CDATA[Reply to globale dynamische arrays, globale vector? - Performance on Sat, 28 May 2016 22:31:33 GMT]]></title><description><![CDATA[<p>Ja, ist echt lustig hier mit Trollen wie dir. Du hast vergessen zu speichern, bevor du dein &quot;Beweisefoto&quot; gemacht hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497347</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497347</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sat, 28 May 2016 22:31:33 GMT</pubDate></item><item><title><![CDATA[Reply to globale dynamische arrays, globale vector? - Performance on Sat, 28 May 2016 22:47:11 GMT]]></title><description><![CDATA[<p>immer locker bleiben, kannst du mir glauben, kannst du aber auch sein lassen, es klappte nicht...<br />
habe es jetzt jedenfalls ans laufen bekommen, Problem liegt an eigenem Downloadpaket von headern, was wir vor einigen Jahren vom ehemaligen Prof gestellt bekommen haben, habe es wieder durch visuals standard bib ausgetauscht und siehe da, es läuft<br />
und für deine innerliche befriedigung: oh ja ich bin so dumm, dass ich nicht den standard lasse!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497348</guid><dc:creator><![CDATA[Kaiserstaedter]]></dc:creator><pubDate>Sat, 28 May 2016 22:47:11 GMT</pubDate></item><item><title><![CDATA[Reply to globale dynamische arrays, globale vector? - Performance on Mon, 30 May 2016 07:11:45 GMT]]></title><description><![CDATA[<blockquote>
<p>Problem liegt an eigenem Downloadpaket von headern, was wir vor einigen Jahren vom ehemaligen Prof gestellt bekommen haben, habe es wieder durch visuals standard bib ausgetauscht</p>
</blockquote>
<p>Naja Ehrlich ?<br />
Solche Dinge Global umzubiegen und nicht projektspezifisch, ist aber auch nicht wirklich intellligent oder ?</p>
<p>Das gewisse Lehrkräfte eine besondere Vorstellung von C++ haben, hört man allerdings immer wieder mal ^^</p>
<p>Ciao ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2497412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2497412</guid><dc:creator><![CDATA[RHBaum]]></dc:creator><pubDate>Mon, 30 May 2016 07:11:45 GMT</pubDate></item></channel></rss>