<?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[großes vector array bricht bei laufzeit ab]]></title><description><![CDATA[<p>Hallo.<br />
Ich möchte folgendes Array im Konstruktor erstellen:<br />
pCloud ist ein vector. für kleine x, y, z läufts auch.<br />
ich habe hier in meinem fall aber x=1000, y=500, z=250.<br />
Ich habe es auch schon als mehrdim. array probiert, auch ohne das struct point3d. irgendwann bricht das programm mit einem fehler ab. was mache ich falsch, bzw wie kann ich es richtig machen <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="🙂"
    /> ?<br />
Danke</p>
<pre><code class="language-cpp">pointCloud::pointCloud(double long x, double y, double z)
{	
	for(double i=0; i&lt;x; i++)
		for(double j=0; j&lt;y; j++)
			for(double k=0; k&lt;z; k++)
			{
				pointCloud::point3d p(i, j, k);
				pCloud.push_back(p);
			}		
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/282498/großes-vector-array-bricht-bei-laufzeit-ab</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 01:41:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/282498.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 Feb 2011 13:21:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to großes vector array bricht bei laufzeit ab on Mon, 21 Feb 2011 13:21:01 GMT]]></title><description><![CDATA[<p>Hallo.<br />
Ich möchte folgendes Array im Konstruktor erstellen:<br />
pCloud ist ein vector. für kleine x, y, z läufts auch.<br />
ich habe hier in meinem fall aber x=1000, y=500, z=250.<br />
Ich habe es auch schon als mehrdim. array probiert, auch ohne das struct point3d. irgendwann bricht das programm mit einem fehler ab. was mache ich falsch, bzw wie kann ich es richtig machen <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="🙂"
    /> ?<br />
Danke</p>
<pre><code class="language-cpp">pointCloud::pointCloud(double long x, double y, double z)
{	
	for(double i=0; i&lt;x; i++)
		for(double j=0; j&lt;y; j++)
			for(double k=0; k&lt;z; k++)
			{
				pointCloud::point3d p(i, j, k);
				pCloud.push_back(p);
			}		
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2024136</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024136</guid><dc:creator><![CDATA[Robert_Jordan]]></dc:creator><pubDate>Mon, 21 Feb 2011 13:21:01 GMT</pubDate></item><item><title><![CDATA[Reply to großes vector array bricht bei laufzeit ab on Mon, 21 Feb 2011 13:27:03 GMT]]></title><description><![CDATA[<p>Zeig mal mehr Code, damit da auch sicher kein Fehler drin ist. Bei dem kurzen Abschnitt sehe ich jedenfalls keinen. Außerdem kannst du ja mal einen try...catch Block um den Teil machen und gucken, ob ein bad_alloc geworfen wird. 1000*500*250*3(point<strong>3d</strong>)*8(double werte?) sind immerhin schon 3GB, das lässt selbst viele moderne Systeme in die Knie gehen und 32-Bit Code wird damit überhaupt nicht funktionieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024138</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 21 Feb 2011 13:27:03 GMT</pubDate></item><item><title><![CDATA[Reply to großes vector array bricht bei laufzeit ab on Mon, 21 Feb 2011 13:27:41 GMT]]></title><description><![CDATA[<p>Wieso verwendest du Laufvariablen vom Typ Double mein Freund?<br />
Nimm 'int' oder gleich std::size_t oder unsinged long long.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024139</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024139</guid><dc:creator><![CDATA[DeinFreund!]]></dc:creator><pubDate>Mon, 21 Feb 2011 13:27:41 GMT</pubDate></item><item><title><![CDATA[Reply to großes vector array bricht bei laufzeit ab on Mon, 21 Feb 2011 13:28:41 GMT]]></title><description><![CDATA[<p>Problem gelöst ! <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="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024142</guid><dc:creator><![CDATA[Robert_Jordan]]></dc:creator><pubDate>Mon, 21 Feb 2011 13:28:41 GMT</pubDate></item><item><title><![CDATA[Reply to großes vector array bricht bei laufzeit ab on Mon, 21 Feb 2011 13:31:01 GMT]]></title><description><![CDATA[<p>Robert_Jordan schrieb:</p>
<blockquote>
<p>Problem gelöst ! <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="👍"
    /></p>
</blockquote>
<p>Darf man erfahren, was es war?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024144</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 21 Feb 2011 13:31:01 GMT</pubDate></item><item><title><![CDATA[Reply to großes vector array bricht bei laufzeit ab on Mon, 21 Feb 2011 14:49:30 GMT]]></title><description><![CDATA[<pre><code>Problem gelöst ! :live:
</code></pre>
<p>anscheinend gibt es leute die nichts besseres zu tun haben als sich hier als jmd anderes auszugeben. habe mich jetzt aber registriert.</p>
<p>ich denke mal du hast recht. so wie ich das gemacht habe ist das einfach zu groß. ich habe die laufvar als double deklariert weil ich die in point3d als double benötige...kann man natürlich auch casten.</p>
<p>hab mir jetzt ein bool'sches 3d array erstellt, das geht auch...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024209</guid><dc:creator><![CDATA[Robert_Jordan]]></dc:creator><pubDate>Mon, 21 Feb 2011 14:49:30 GMT</pubDate></item><item><title><![CDATA[Reply to großes vector array bricht bei laufzeit ab on Mon, 21 Feb 2011 14:57:45 GMT]]></title><description><![CDATA[<p>Ich musste schmunzeln^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024221</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024221</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 21 Feb 2011 14:57:45 GMT</pubDate></item><item><title><![CDATA[Reply to großes vector array bricht bei laufzeit ab on Mon, 21 Feb 2011 14:59:01 GMT]]></title><description><![CDATA[<p>Robert_Jordan schrieb:</p>
<blockquote>
<p>ich denke mal du hast recht. so wie ich das gemacht habe ist das einfach zu groß. ich habe die laufvar als double deklariert weil ich die in point3d als double benötige...kann man natürlich auch casten.</p>
</blockquote>
<p>Ganzzahlen und Fließkommazahlen sind implizit ineinander überführbar. Keine Notwendigkeit, zu casten.</p>
<blockquote>
<p>hab mir jetzt ein bool'sches 3d array erstellt, das geht auch...</p>
</blockquote>
<p>Wobei dir hoffentlich klar ist, dass bool mehr als 1 Bit Speicher benötigt. Wie kann das überhaupt sein, dass du double durch bool ersetzen kannst?</p>
<p>Meiner Meinung nach solltest du dich aber vielleicht eher fragen, ob du die Werte überhaupt alle benötigst. Welche Anwendung die auf einem Rechner mit so wenig Speicher läuft, braucht denn 125 Millionen Koordinaten? Ich vermute mal, dass ist ein Heimrechner? Bis du da irgendwas mit dieser Größenordnung von Werten ausgerechnet hast, dauert das doch Jahre!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024223</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024223</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 21 Feb 2011 14:59:01 GMT</pubDate></item><item><title><![CDATA[Reply to großes vector array bricht bei laufzeit ab on Mon, 21 Feb 2011 16:53:39 GMT]]></title><description><![CDATA[<p>also die aufgabe ist es alle punkte zu markieren die von einer kugel berühert werden, die diese punktewolke anhand einer funktion durchläuft. die größe ist vorgegeben. das läuft jetzt auch so weit alles...bloß dass ich wegen der enormen größe natürlich noch ein paar laufzeitprobleme habe. ich überprüfe aber im moment bei jedem iterationsschritt der druchlauf funktion alle punkte...was natürlich viel zu viel ist...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024301</guid><dc:creator><![CDATA[Robert_Jordan]]></dc:creator><pubDate>Mon, 21 Feb 2011 16:53:39 GMT</pubDate></item><item><title><![CDATA[Reply to großes vector array bricht bei laufzeit ab on Mon, 21 Feb 2011 17:11:52 GMT]]></title><description><![CDATA[<p>Du hast hoffentlich vorher die Kapazität des vectors schon entsprechend festgelegt? Ansonsten kopiert er sich ja da zu Tode <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="🙂"
    /><br />
Ein Problem was dann auftreten kann bei so grossen Datenmengen:</p>
<p>Angenommen der Vektor hat bereits 2GB (also ca. 83 Millionen point3d-Objekte) und seine Kapazität ist nun erschöpft.<br />
Nun wird versucht neuen Speicherplatz zu allozieren, sagen wir mal 3GB -&gt; +50%).</p>
<p>Gesamtspeicherbedarf in dem Moment: 5GB - auf Systemen mit nur 4GB Ram doof.</p>
<p>Also lieber vorher schon sagen: Mein Vekor soll 125Mio point3d-Objekte aufnehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024315</guid><dc:creator><![CDATA[inter2k3]]></dc:creator><pubDate>Mon, 21 Feb 2011 17:11:52 GMT</pubDate></item><item><title><![CDATA[Reply to großes vector array bricht bei laufzeit ab on Mon, 21 Feb 2011 19:12:19 GMT]]></title><description><![CDATA[<p>Riesige zusammenhängende Speicherbereiche zu finden kann schwierig werden. Vielleicht ist man mit einem Container wie <code>std::deque</code> besser beraten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024380</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024380</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 21 Feb 2011 19:12:19 GMT</pubDate></item><item><title><![CDATA[Reply to großes vector array bricht bei laufzeit ab on Tue, 22 Feb 2011 09:49:19 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Riesige zusammenhängende Speicherbereiche zu finden kann schwierig werden. Vielleicht ist man mit einem Container wie <code>std::deque</code> besser beraten.</p>
</blockquote>
<p>Das muss man Fall zu Fall prüfen. Der Overhead bei std::deque ist riesig, zumindest in der STLport und Dinkumware Implementation. Dort hängt die Blockgröße von der Größe des zu speichernden Typs ab und ist oft nur 2, 4 oder 8 Elemente groß, bei einem Overhead von 12 Byte je Block zur Verwaltung.<br />
Ich hatte ein ähnliches Problem und habe eine abgespeckte deque programmiert mit eine über ein Template Parameter einstellbare Blockgröße, weil die std::queue zwar keinen zusammenhängenden Speicher braucht, aber durch die Verwaltungsinformation um den Faktor drei mehr Speicher brauchte als std::vector.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2024590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2024590</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Tue, 22 Feb 2011 09:49:19 GMT</pubDate></item></channel></rss>