<?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[string in einer schleife allokieren]]></title><description><![CDATA[<p>moin.</p>
<p>was passiert eigentlich, wenn man das hier macht?</p>
<pre><code class="language-cpp">for(long i = 0; i &lt; 17000000;i++)
{
    char string[100] = {'1','2','3','4'...}
}
</code></pre>
<p>wird in jeder Iteration ein neuer Bereich im HPS allokiert, oder wird jedesmal der alte überschrieben?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/233176/string-in-einer-schleife-allokieren</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 02:58:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/233176.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 01 Feb 2009 18:59:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to string in einer schleife allokieren on Sun, 01 Feb 2009 18:59:30 GMT]]></title><description><![CDATA[<p>moin.</p>
<p>was passiert eigentlich, wenn man das hier macht?</p>
<pre><code class="language-cpp">for(long i = 0; i &lt; 17000000;i++)
{
    char string[100] = {'1','2','3','4'...}
}
</code></pre>
<p>wird in jeder Iteration ein neuer Bereich im HPS allokiert, oder wird jedesmal der alte überschrieben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1656119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1656119</guid><dc:creator><![CDATA[sharp]]></dc:creator><pubDate>Sun, 01 Feb 2009 18:59:30 GMT</pubDate></item><item><title><![CDATA[Reply to string in einer schleife allokieren on Sun, 01 Feb 2009 19:02:29 GMT]]></title><description><![CDATA[<p>Wird vom compiler wegoptimiert <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/1656124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1656124</guid><dc:creator><![CDATA[optimierung]]></dc:creator><pubDate>Sun, 01 Feb 2009 19:02:29 GMT</pubDate></item><item><title><![CDATA[Reply to string in einer schleife allokieren on Sun, 01 Feb 2009 19:08:51 GMT]]></title><description><![CDATA[<p>also ich hatte gerade ein selbsgebautes programm laufen, dass mehrere Millionen male solche Schleifen benutzte und nach einer Stunde ist alles zum erliegen gekommen und die reaktionszeit war sehr langsam...</p>
<p>könnte es nicht sein, das der Compiler doch nicht alles optimal optimiert und ich doch lieber alles deallokieren sollte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1656127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1656127</guid><dc:creator><![CDATA[sharp]]></dc:creator><pubDate>Sun, 01 Feb 2009 19:08:51 GMT</pubDate></item><item><title><![CDATA[Reply to string in einer schleife allokieren on Sun, 01 Feb 2009 20:25:46 GMT]]></title><description><![CDATA[<p>sharp schrieb:</p>
<blockquote>
<p>also ich hatte gerade ein selbsgebautes programm laufen, dass mehrere Millionen male solche Schleifen benutzte und nach einer Stunde ist alles zum erliegen gekommen und die reaktionszeit war sehr langsam...</p>
<p>könnte es nicht sein, das der Compiler doch nicht alles optimal optimiert und ich doch lieber alles deallokieren sollte?</p>
</blockquote>
<p>Das wird interessant....<br />
Wie deallokierst du das (char[]) denn? ^^</p>
<p>Nach mehreren Stunden klingt so, als ob du iwo Pointer benutzt und das delete vergisst...<br />
Aber ohne Quelltext wird dir hier wohl keiner weiterhelfen können...<br />
Und dann solltest du dazu noch verraten, welchen Compiler du nutzt - allerdings glaub ich nicht daran, dass es nen Compiler gibt, der dumm genug ist, das (was du gepostet hast) nicht wegzuoptimieren...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1656167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1656167</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 01 Feb 2009 20:25:46 GMT</pubDate></item><item><title><![CDATA[Reply to string in einer schleife allokieren on Sun, 01 Feb 2009 20:36:26 GMT]]></title><description><![CDATA[<blockquote>
<p>Das wird interessant....<br />
Wie deallokierst du das (char[]) denn? ^^</p>
</blockquote>
<p>nicht mit free(nameOfString) ?</p>
<blockquote>
<p>Nach mehreren Stunden klingt so, als ob du iwo Pointer benutzt und das delete vergisst...</p>
</blockquote>
<p>nop. keine Pointer.</p>
<blockquote>
<p>Aber ohne Quelltext wird dir hier wohl keiner weiterhelfen können...</p>
</blockquote>
<p>ich glaube ab einer gewissen Größe macht es gar keinen Sinn es zu posten, weil niemand die Lust hast sich da einzuarbeiten...hab ich schon versucht:</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-233049.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-233049.html</a></p>
<blockquote>
<p>Und dann solltest du dazu noch verraten, welchen Compiler du nutzt</p>
</blockquote>
<p>gcc natürlich. was den sonst <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/1656170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1656170</guid><dc:creator><![CDATA[sharp]]></dc:creator><pubDate>Sun, 01 Feb 2009 20:36:26 GMT</pubDate></item><item><title><![CDATA[Reply to string in einer schleife allokieren on Sun, 01 Feb 2009 20:40:03 GMT]]></title><description><![CDATA[<p>sharp schrieb:</p>
<blockquote>
<blockquote>
<p>Das wird interessant....<br />
Wie deallokierst du das (char[]) denn? ^^</p>
</blockquote>
<p>nicht mit free(nameOfString) ?</p>
</blockquote>
<p>Doppelt böse!<br />
In C++ wenn schon mit delete, aber das ist auch böse. Du darfst nur den Speicher freigeben, den du auch angefordert hast!</p>
<p>Ob es ein Memleak ist sagt dir z.B :<br />
<a href="http://valgrind.org/" rel="nofollow">http://valgrind.org/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1656172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1656172</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 01 Feb 2009 20:40:03 GMT</pubDate></item><item><title><![CDATA[Reply to string in einer schleife allokieren on Sun, 01 Feb 2009 20:45:45 GMT]]></title><description><![CDATA[<p>danke für den link.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1656176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1656176</guid><dc:creator><![CDATA[sharp]]></dc:creator><pubDate>Sun, 01 Feb 2009 20:45:45 GMT</pubDate></item><item><title><![CDATA[Reply to string in einer schleife allokieren on Sun, 01 Feb 2009 22:09:10 GMT]]></title><description><![CDATA[<p>Ist das denn noch keinem aufgefallen? Hier gehts nicht um dynamische Speicherverwaltung oder Memory Leaks...</p>
<p>Variablen, die automatische Speicherklasse (&quot;Stack&quot;) haben, muss man weder freigeben noch können sie Leaks verursachen. Sie werden am Ende des Blocks zerstört. Folglich sind sie in einer neuen Iteration nicht mehr existent.</p>
<p>Dazu gehört auch</p>
<pre><code class="language-cpp">char string[100] = {'1','2','3','4'...}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1656226</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1656226</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 01 Feb 2009 22:09:10 GMT</pubDate></item><item><title><![CDATA[Reply to string in einer schleife allokieren on Sun, 01 Feb 2009 22:18:15 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Ist das denn noch keinem aufgefallen? Hier gehts nicht um dynamische Speicherverwaltung oder Memory Leaks...</p>
<p>Variablen, die automatische Speicherklasse (&quot;Stack&quot;) haben, muss man weder freigeben noch können sie Leaks verursachen. Sie werden am Ende des Blocks zerstört. Folglich sind sie in einer neuen Iteration nicht mehr existent.</p>
<p>Dazu gehört auch</p>
<pre><code class="language-cpp">char string[100] = {'1','2','3','4'...}
</code></pre>
</blockquote>
<p>Das haben wir schon richtig verstanden, aber die ursprüngliche Frage war, ob es überschrieben wird, was nicht unbedingt sein muss, dann hat er aber im dritten Post gesagt, dass das Programm nach ein paar Stunden zum erliegen kommt und das klingt sehr danach, dass irgendwo anders im Code der Hase begraben liegt. <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="😉"
    /> - Und es ist nach der Erklärung sehr wahrscheinlich ein Memory Leak.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1656229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1656229</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 01 Feb 2009 22:18:15 GMT</pubDate></item><item><title><![CDATA[Reply to string in einer schleife allokieren on Sun, 01 Feb 2009 22:20:47 GMT]]></title><description><![CDATA[<p>Aber er sagte ausdrücklich, er verwende keine Zeiger. Ohne Zeiger Memory Leaks zu erzeugen ist... schwierig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1656230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1656230</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 01 Feb 2009 22:20:47 GMT</pubDate></item><item><title><![CDATA[Reply to string in einer schleife allokieren on Sun, 01 Feb 2009 22:24:38 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Aber er sagte ausdrücklich, er verwende keine Zeiger. Ohne Zeiger Memory Leaks zu erzeugen ist... schwierig.</p>
</blockquote>
<p>Nö.</p>
<pre><code class="language-cpp">new int[100];
</code></pre>
<p>Ich benutze da keine Zeiger. <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>
<p>Kann natürlich auch aus einer lib sein, wo er ein dazugehörigens release, close usw. nicht aufruft.. Ansonsten können wir ohne Code nicht viel sagen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1656234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1656234</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 01 Feb 2009 22:24:38 GMT</pubDate></item><item><title><![CDATA[Reply to string in einer schleife allokieren on Sun, 01 Feb 2009 22:37:43 GMT]]></title><description><![CDATA[<p>So langsam spekulieren wir... <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>
<p>sharp schrieb:</p>
<blockquote>
<p>also ich hatte gerade ein selbsgebautes programm laufen, dass mehrere Millionen male <strong>solche</strong> Schleifen benutzte und nach einer Stunde ist alles zum erliegen gekommen und die reaktionszeit war sehr langsam...</p>
</blockquote>
<p>Ich bin hier mal davon ausgegangen, dass er die Sache einigermassen richtig abstrahiert hat. Klar ist es nicht schlecht zu erwähnen, dass generell Memory Leaks entstehen können, aber mit <em>solchen</em> Schleifen eben nicht.</p>
<p>Aber Code zeigen wäre wahrscheinlich das Einfachste... <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/1656239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1656239</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 01 Feb 2009 22:37:43 GMT</pubDate></item><item><title><![CDATA[Reply to string in einer schleife allokieren on Sun, 01 Feb 2009 22:49:18 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>So langsam spekulieren wir... <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>
<p>sharp schrieb:</p>
<blockquote>
<p>also ich hatte gerade ein selbsgebautes programm laufen, dass mehrere Millionen male <strong>solche</strong> Schleifen benutzte und nach einer Stunde ist alles zum erliegen gekommen und die reaktionszeit war sehr langsam...</p>
</blockquote>
<p>Ich bin hier mal davon ausgegangen, dass er die Sache einigermassen richtig abstrahiert hat. Klar ist es nicht schlecht zu erwähnen, dass generell Memory Leaks entstehen können, aber mit <em>solchen</em> Schleifen eben nicht.</p>
</blockquote>
<p>Das es nicht daran liegen kann/sollte war imo von Anfang an klar, darum den Hinweis, dass es sehr wahrscheinlich irgendwo anders und was mit dynamischer Allokation zu tun hat..</p>
<p>Das Problem ist ja, dass man als Anfänger die Probleme meist nicht da sucht, wo sie sind. Siehe Titel und das eigentliche Problem, dass er hat. Er fängt an etwas von Schleifen zu reden, kommt aber später damit, dass eigentlich sein Programm nach ein paar Stunden zum erliegen kommt und das hat einmal grundsätzlich nichts mit dem zu tun, was am Anfang angesprochen wurde..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1656248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1656248</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 01 Feb 2009 22:49:18 GMT</pubDate></item><item><title><![CDATA[Reply to string in einer schleife allokieren on Sun, 01 Feb 2009 22:56:10 GMT]]></title><description><![CDATA[<p>Da stimme ich dir schon zu. Ich hatte beim Lesen des Threads nur das Gefühl, es wurde nicht eindeutig genug dargestellt, dass das <code>char</code> -Array mit Sicherheit <em>nicht</em> der Grund für das Erliegen/Langsamer Werden sei.</p>
<p>Sollte kein Vorwurf sein... <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/1656252</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1656252</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 01 Feb 2009 22:56:10 GMT</pubDate></item></channel></rss>