<?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[Wie auf freien Speicher zum Datei einlesen prüfen]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie kann ich möglichst einfach aber auch sinnvoll prüfen ob für das Einlesen einer Datei noch genügend Speicher vorhanden ist?</p>
<p>Ist sowas ok?</p>
<pre><code class="language-cpp">std::vector&lt;unsigned char&gt;milchschnitte;
size_t FreierSpeicher = milchschnitte.max_size();
</code></pre>
<p>Oder hat vector eine art Begrenzung die kleiner als der mögliche freie Speicher sein kann?<br />
Oder bietet std::fstream eine Möglichkeit das zu prüfen?</p>
<p>Die Dateien bzw. die Datenbereiche in den Dateien wären in der Regel ca 1 - 5 MB groß.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/233791/wie-auf-freien-speicher-zum-datei-einlesen-prüfen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 18:49:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/233791.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 09 Feb 2009 11:26:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie auf freien Speicher zum Datei einlesen prüfen on Mon, 09 Feb 2009 11:26:31 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie kann ich möglichst einfach aber auch sinnvoll prüfen ob für das Einlesen einer Datei noch genügend Speicher vorhanden ist?</p>
<p>Ist sowas ok?</p>
<pre><code class="language-cpp">std::vector&lt;unsigned char&gt;milchschnitte;
size_t FreierSpeicher = milchschnitte.max_size();
</code></pre>
<p>Oder hat vector eine art Begrenzung die kleiner als der mögliche freie Speicher sein kann?<br />
Oder bietet std::fstream eine Möglichkeit das zu prüfen?</p>
<p>Die Dateien bzw. die Datenbereiche in den Dateien wären in der Regel ca 1 - 5 MB groß.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660401</guid><dc:creator><![CDATA[KleinHein]]></dc:creator><pubDate>Mon, 09 Feb 2009 11:26:31 GMT</pubDate></item><item><title><![CDATA[Reply to Wie auf freien Speicher zum Datei einlesen prüfen on Mon, 09 Feb 2009 11:29:04 GMT]]></title><description><![CDATA[<p>Meinst du, ob noch genügend Arbeitsspeicher vorhanden ist? Dafür musst du dir in der Regel keine Sorgen machen. Selbst wenn du sehr viel allokierst (und einige Megabyte sind <em>nicht</em> viel), gibt es noch Auslagerungsdateien.</p>
<p>Ansonsten existiert die Exception <code>std::bad_alloc</code> , die geworfen wird, wenn kein Speicher mehr angefordert werden kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660404</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 09 Feb 2009 11:29:04 GMT</pubDate></item><item><title><![CDATA[Reply to Wie auf freien Speicher zum Datei einlesen prüfen on Mon, 09 Feb 2009 12:01:46 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Meinst du, ob noch genügend Arbeitsspeicher vorhanden ist? Dafür musst du dir in der Regel keine Sorgen machen. Selbst wenn du sehr viel allokierst (und einige Megabyte sind <em>nicht</em> viel), gibt es noch Auslagerungsdateien.</p>
</blockquote>
<p>Ja nun, bis man die Auslagerungsdatei voll hat kann das sicher noch dauern. Aber diese könnten ja auch ausgeschaltet sein. Und da ich an einer OpenGL Engine arbeite wäre es vielleicht nicht so toll das die Daten immer hin und her gehen.</p>
<p>Nexus schrieb:</p>
<blockquote>
<p>Ansonsten existiert die Exception <code>std::bad_alloc</code> , die geworfen wird, wenn kein Speicher mehr angefordert werden kann.</p>
</blockquote>
<p>Bei Exception wird die Awendung beendet? Ich versuche immer sowas durch vorheriges prüfen zu vermeiden. Auch wenn ich die Exception abfangen kann/könnte damit die Anwendung nicht beendet wird. Möchte ich doch eher den ganzen Vorgang des einlesens schon zu beginn abbrechen, und nicht mittendrin.</p>
<p>Mir gehts um einen zusammenhängenden Datenblock. Die Daten der Datei werden in einen &quot;unsigned char&quot;-Array gespeichert und nicht selbt in einem vector. Wobei ich auch nicht genau weiss warum keinen Vector dafür nehme, wobei ich auch nicht weiss ob das sinnvoll wäre. Also den speicher in dem die Daten gespeichert werden hol ich mir immer mit &quot;new&quot; was, soviel ich weiss, in beiden fällen ein zusammenhängender Datenblock wäre.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660422</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660422</guid><dc:creator><![CDATA[KleinHein]]></dc:creator><pubDate>Mon, 09 Feb 2009 12:01:46 GMT</pubDate></item><item><title><![CDATA[Reply to Wie auf freien Speicher zum Datei einlesen prüfen on Mon, 09 Feb 2009 12:08:53 GMT]]></title><description><![CDATA[<p>Also im Bereich von 1-5MB brauchst du dir kein Kopf zu machen, ich habe sogar Teilweiße 96MB große Dateien eingelesen und die dann in einem vector in 1,2sec durchsucht und berechnungen durchgeführt,da gabs eigentlich keine Engpässe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660426</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Mon, 09 Feb 2009 12:08:53 GMT</pubDate></item><item><title><![CDATA[Reply to Wie auf freien Speicher zum Datei einlesen prüfen on Mon, 09 Feb 2009 12:11:19 GMT]]></title><description><![CDATA[<p>KleinHein schrieb:</p>
<blockquote>
<p>Mir gehts um einen zusammenhängenden Datenblock. Die Daten der Datei werden in einen &quot;unsigned char&quot;-Array gespeichert und nicht selbt in einem vector. Wobei ich auch nicht genau weiss warum keinen Vector dafür nehme, wobei ich auch nicht weiss ob das sinnvoll wäre. Also den speicher in dem die Daten gespeichert werden hol ich mir immer mit &quot;new&quot; was, soviel ich weiss, in beiden fällen ein zusammenhängender Datenblock wäre.</p>
</blockquote>
<p><code>std::vector</code> wäre auf jeden Fall sinnvoller als ein Array. Die Daten weden auch an einem zusammenhängenden Block gespeichert, also in einem dynamischen Array. Aber die Speicherverwaltung braucht dich nicht mehr zu kümmern und du kannst bequem auf dem Container operieren (z.B. Elemente anhängen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1660428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1660428</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 09 Feb 2009 12:11:19 GMT</pubDate></item></channel></rss>