<?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[static variablen]]></title><description><![CDATA[<p>komme irgendwie nicht so mit der bedeutung von static variablen klar.<br />
kann mir evtl jmd den sinn dieses begriffs und auch den gebrauch näher bringen?</p>
<p>und wieso wird bei diesem beispiel die variable b erhöht und nicht jedesmal auf 5 gesetzt:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;
void func1() {
  static int i = 0;
  cout &lt;&lt; ++i &lt;&lt; &quot; &quot;;
}
int main() {
  for(int x = 0; x &lt; 10; x++)
  func1();
}
</code></pre>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/207452/static-variablen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 11 Oct 2026 05:04:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/207452.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 07 Mar 2008 17:09:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 17:09:20 GMT]]></title><description><![CDATA[<p>komme irgendwie nicht so mit der bedeutung von static variablen klar.<br />
kann mir evtl jmd den sinn dieses begriffs und auch den gebrauch näher bringen?</p>
<p>und wieso wird bei diesem beispiel die variable b erhöht und nicht jedesmal auf 5 gesetzt:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;
void func1() {
  static int i = 0;
  cout &lt;&lt; ++i &lt;&lt; &quot; &quot;;
}
int main() {
  for(int x = 0; x &lt; 10; x++)
  func1();
}
</code></pre>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470164</guid><dc:creator><![CDATA[wanderameise12]]></dc:creator><pubDate>Fri, 07 Mar 2008 17:09:20 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 17:10:07 GMT]]></title><description><![CDATA[<p>meinte natürlich variable i</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470165</guid><dc:creator><![CDATA[wanderameise12]]></dc:creator><pubDate>Fri, 07 Mar 2008 17:10:07 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 17:16:22 GMT]]></title><description><![CDATA[<p>Hio,</p>
<p>static Variablen hören, wenn du sie in einem Anweisungsblock deklarierst,<br />
nicht wie &quot;normale&quot; Variblen auf zu existieren, sondern bleiben<br />
weiter im Speicher.</p>
<p>Mal an deinem Beispiel:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;
void func1() {
  static int i = 0;
  cout &lt;&lt; ++i &lt;&lt; &quot; &quot;;
  // i lebt weiter
}
int main() {
  for(int x = 0; x &lt; 10; x++)
  func1();
}
</code></pre>
<p>Hättest du folgenden Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;
void func1() {
  int i = 0;
  cout &lt;&lt; ++i &lt;&lt; &quot; &quot;;
  // i würde hier sterben
}
int main() {
  for(int x = 0; x &lt; 10; x++)
  func1();
}
</code></pre>
<p>Wie du dazu kommst das i auf 5 gesetzt wird ist mir Schleierhaft,<br />
bei mir geht i von 1 - 10.</p>
<p>Gruß,</p>
<p>Max</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470168</guid><dc:creator><![CDATA[blub* 0]]></dc:creator><pubDate>Fri, 07 Mar 2008 17:16:22 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 17:39:23 GMT]]></title><description><![CDATA[<p>Dabei ist noch wichtig zu erwähnen, dass statische Variabeln im Gegensatz zu globalen Variabeln nur den Sichtbarkeitsbereich besitzen, in dem sie deklariert wurden.</p>
<pre><code class="language-cpp">int j = 3;
void func1() {
  static int i = 0;
  cout &lt;&lt; ++i &lt;&lt; &quot; &quot;;
} // hier endet der Sichtbarkeitsbereich

int main()
{
   cout &lt;&lt; i &lt;&lt; endl; // geht hier nicht, da der Sichtbarkeitsbereich von i verlassen wurde.
   cout &lt;&lt; j &lt;&lt; endl; // globale Variable, Sichtbarkeit noch vorhanden
}
</code></pre>
<p>Das heisst, i lebt erst weiter, wenn die Funktion func1 erneut aufgerufen wird (in deinem Beispiel wird es jedoch gerade wieder mit 0 überschrieben).</p>
<p>Folgender Kontext könnte ein Beispiel für eine static-Anwendung sein (ist zwar ein bisschen gekünstelt, soll aber nur das Prinzip aufzeigen)</p>
<pre><code class="language-cpp">void func1(bool blub) {
  static int i;
  if (blub) i = 0;
  cout &lt;&lt; ++i &lt;&lt; &quot; &quot;;
}

int main()
{
    func1(true);
  for (short a = 0; a &lt; 4; ++a)
    func1(false);
    func1(true);
    func1(false);
}
</code></pre>
<p>Bei blub == true würde die Variable i immer wieder auf 0 gesetzt, sonst wird sie weitergezählt. Das ergäbe folgende Ausgabe:<br />
1<br />
2<br />
3<br />
4<br />
5<br />
1<br />
2</p>
<p>Ausserdem kann das Schlüsselwort static bei Klassen vorkommen, wenn es möglich sein soll, dass auf eine Klassenvariable ohne Objekt zugegriffen wird (aber ich denke nicht, dass du dies gemeint hast - nur so nebenbei).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470185</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 07 Mar 2008 17:39:23 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 17:56:09 GMT]]></title><description><![CDATA[<p>Nunja, in seinem Beispiel wird i nicht wirklich mit 0 überschrieben.<br />
Zumindest bei mir wird von 1 bis 10 gezählt <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>Also, soweit ich weiß ist es ja so:</p>
<pre><code class="language-cpp">int main()
{
   // Anweisungsblock
   int i = 5;
   // neuer Anweisungsblock
   {
      int i = 10;
      cout &lt;&lt; i &lt;&lt; endl; // i = 10 ABER! die Variable i wird nur von
      // der anderen &quot;überdeckt&quot;
   } // hier stirb das &quot;innere&quot; i
   cout &lt;&lt; i &lt;&lt; endl; // das &quot;äußere&quot; i lebt noch, i = 5
}
</code></pre>
<p>Wie siehts bei static Variablen aus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470196</guid><dc:creator><![CDATA[blub* 0]]></dc:creator><pubDate>Fri, 07 Mar 2008 17:56:09 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 18:12:55 GMT]]></title><description><![CDATA[<p>Statische Variablen werden nur einmal Initialisiert.</p>
<pre><code class="language-cpp">void func1() {
  static int i = 0;
  cout &lt;&lt; ++i &lt;&lt; &quot; &quot;;
}
</code></pre>
<p>Das</p>
<pre><code class="language-cpp">int i=0;
</code></pre>
<p>wird beim zweiten Aufruf der Funktion übersprungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470207</guid><dc:creator><![CDATA[EEK]]></dc:creator><pubDate>Fri, 07 Mar 2008 18:12:55 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 18:29:26 GMT]]></title><description><![CDATA[<p>Stimmt natürlich, dass i nicht überschrieben wird (hab auch schon einige Zeit nicht mehr mit static gearbeitet - sorry für Fehlinformation), da wär auch mein kompliziertes Konstrukt nicht nötig ;).</p>
<p>Was deine Frage angeht: Ich hab deinen Code ausprobiert, die Ausgabe ist in allen 4 möglichen Fällen (innen static, aussen nicht; innen static, aussen auch; etc.)<br />
10<br />
5</p>
<p>Die innere Deklaration (egal ob static oder nicht) hat innen immer Vorrang, genauso wie diese ausserhalb des Blockes nicht mehr sichtbar ist (deshalb ist die Ausgabe aussen immer 5). Das heisst, die beiden Variabeln arbeiten jeweils in ihrem Sichtbarkeitsbereich für sich, also unabhängig vom anderen i, halt wie bei normalen Variabeln. Eben mit dem Unterschied, dass static-Variabeln &quot;weiterleben&quot;.</p>
<p><em>Edit2: Verdammt, immer zu spät, ausserdem viel zu viel Text, um wenig zu sagen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470211</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 07 Mar 2008 18:29:26 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 18:24:32 GMT]]></title><description><![CDATA[<p>Meine Frage ist schon damit beantwortet das die<br />
static Variable nicht überschrieben wird, danke <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1470219</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470219</guid><dc:creator><![CDATA[blub* 0]]></dc:creator><pubDate>Fri, 07 Mar 2008 18:24:32 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 18:33:07 GMT]]></title><description><![CDATA[<p>natürlich kommt 1-10 raus und nichts mit 5, war wohl etwas verwirrt.</p>
<p>was mich irritiert hat, war, dass jedesmal beim fkt aufruf static int I=0 gesetzt wurde. aber sow ie ich es jetzt verstanden habe, wird diese nur einmal initialisiert bei static und lebt dann weiter, wobei die definition bei jedem fkt aufruf übersprungen wird.<br />
muss man erstmal wissen sowas.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12954">@nexus</a>: auf was beziehst du dich mit den 4 varianten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470224</guid><dc:creator><![CDATA[wanderameise]]></dc:creator><pubDate>Fri, 07 Mar 2008 18:33:07 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 18:45:11 GMT]]></title><description><![CDATA[<p>Hast du richtig verstanden <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>er bezieht sich auf meinen Code:</p>
<pre><code class="language-cpp">int main()
{
   // Anweisungsblock
   int i = 5;
   // neuer Anweisungsblock
   {
      int i = 10;
      cout &lt;&lt; i &lt;&lt; endl; // i = 10 ABER! die Variable i wird nur von
      // der anderen &quot;überdeckt&quot;
   } // hier stirb das &quot;innere&quot; i
   cout &lt;&lt; i &lt;&lt; endl; // das &quot;äußere&quot; i lebt noch, i = 5
}
</code></pre>
<p>und meint diese Varianten (gekürzt)</p>
<pre><code class="language-cpp">// außen static
int main()
{
   static int i = 5;
   {
      int i = 10;
   }
}

// beides static
int main()
{
   static int i = 5;
   {
      static int i = 10;
   }
}

// innen static
int main()
{
   int i = 5;
   {
      static int i = 10;
   }
}

// kein static
int main()
{
   int i = 5;
   {
      int i = 10;
   }
}
</code></pre>
<p>kommt immer aufs gleiche raus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470234</guid><dc:creator><![CDATA[blub* 0]]></dc:creator><pubDate>Fri, 07 Mar 2008 18:45:11 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 19:03:17 GMT]]></title><description><![CDATA[<p>das static innerhalb der klammer ist nciht stärker als das ausserhalb?</p>
<p>mhh</p>
<p>mal ne andere frage wenns erlaubt ist:</p>
<pre><code class="language-cpp">while(i&lt;5){
int *p=new int;
p=&amp;i;
i++;
cout &lt;&lt; *p;
}
</code></pre>
<p>?</p>
<p>hier benutze ich jedesmal den zeiger p um auf dem heap neuen platz zu reservieren.<br />
wieso klappt das nicht wenn ich es so schreibe?</p>
<pre><code class="language-cpp">int main(){
int *p=new int(123);
int *p=new int(321);
return 0;
}
</code></pre>
<p>oben wird er doch auch mehrfach benutzt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470248</guid><dc:creator><![CDATA[wanderameise]]></dc:creator><pubDate>Fri, 07 Mar 2008 19:03:17 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 19:05:23 GMT]]></title><description><![CDATA[<p>Beim unteren Beispiel deklarierst du *p zweimal.<br />
Machs doch so:</p>
<pre><code class="language-cpp">int *p=new int(123); 
 *p=321;
 std::cout&lt;&lt;*p&lt;&lt;std::endl;
</code></pre>
<p>Ausgabe: 321</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470252</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470252</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 07 Mar 2008 19:05:23 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 19:12:49 GMT]]></title><description><![CDATA[<p>oben wird es doch auch jedesmal neu deklariert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470257</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470257</guid><dc:creator><![CDATA[wanderameise]]></dc:creator><pubDate>Fri, 07 Mar 2008 19:12:49 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 19:30:55 GMT]]></title><description><![CDATA[<p>Nein, oben wird es nur neu definiert (zugewiesen). Bei folgendem Befehl ist p schon deklariert (als int*):</p>
<pre><code class="language-cpp">p=&amp;i;
</code></pre>
<p>Dies verhält sich wie normale, nicht dynamisch definierte Datentypen:</p>
<pre><code class="language-cpp">int i = 0;
int i = 3;
</code></pre>
<p>wird nicht funktionieren wegen doppelter Deklaration (Variable i besteht bereits).</p>
<pre><code class="language-cpp">int i = 0;
i = 3;
</code></pre>
<p>geht. Hier wird i nur ein Mal deklariert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470269</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 07 Mar 2008 19:30:55 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 20:25:36 GMT]]></title><description><![CDATA[<p>ja aber am anfang der while schleife wird es doch auch jedesmal deklariert:</p>
<p>ich habe den typ und den namen der variablen, sehe da keinen unterschied. das muss doch was mit der while schleife zu tun haben oder?</p>
<p>naja hab hier noch eine andere frage:</p>
<p>was bewirkt das const bei dem parameter:</p>
<pre><code class="language-cpp">Ratio&amp; Ratio::plusGleich(const Ratio &amp;x)
</code></pre>
<p>[cpp]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470298</guid><dc:creator><![CDATA[wanderameise]]></dc:creator><pubDate>Fri, 07 Mar 2008 20:25:36 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 20:46:14 GMT]]></title><description><![CDATA[<p>Der Unterschied ist, dass die While-Schleife einen Block impliziert - das ist alles innerhalb der Klammern {} - und der Sichtbarkeitsbereich am Ende des Blockes (d.h. mit der schliessenden Klammer }) verloren geht. Somit ist bei einem neuen Schleifendurchgang die Variable *p noch undeklariert, wodurch eine Deklaration erlaubt ist.</p>
<pre><code class="language-cpp">while(i&lt;5)
{    // Block beginnt bei jedem Durchgang neu; *p noch undeklariert
  int *p=new int;
  // ab hier ist *p deklariert
  // ...
}    // Block ist hier beendet, Sichtbarkeit auf *p geht verloren.
</code></pre>
<p>Das const bewirkt, dass der Parameter, der als Referenz übergeben wird (&amp;x), konstant übergeben wird. Das bedeutet, er kann von der Funktion nicht verändert werden. Im Gegensatz zu einer Wertübergabe, bei der der Parameter auch nicht verändert werden kann, bringt eine Referenzübergabe oft Performancevorteile, da die Variable so nicht kopiert, sondern nur auf sie verwiesen wird.</p>
<p>Ich hoffe, ich habe mich einigermassen klar ausgedrückt, sonst einfach nachfragen <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/1470312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470312</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 07 Mar 2008 20:46:14 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 20:52:51 GMT]]></title><description><![CDATA[<p>jup habe es verstanden, danke sehr.</p>
<p>wenn der wert eh nicht verändert werden kann, dann hätte ich doch direkt eine wertübergabe machen können und bräuchte keine referenz, wie du es sagst. da war mir gerade die logik nicht klar...</p>
<p>achja da fällt mir ein:</p>
<pre><code class="language-cpp">int const i=3;
const int i=3;
</code></pre>
<p>wo ist der unterschied wenn es einen gibt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470315</guid><dc:creator><![CDATA[wanderameise]]></dc:creator><pubDate>Fri, 07 Mar 2008 20:52:51 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 20:57:14 GMT]]></title><description><![CDATA[<p>Soweit ich weiß keiner.</p>
<p>Übrigens, bin da jetzt auch nicht so der Profi<br />
auf dem Zeigergebiet, aber sollte man nicht eigentlich<br />
Speicher den man mit new angefordert hat auch wieder<br />
mit free freigeben? Oder wird auch der Speicher wenn der<br />
Zeiger stirbt wieder freigegeben?<br />
Ich kenns nur von C <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1470316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470316</guid><dc:creator><![CDATA[blub* 0]]></dc:creator><pubDate>Fri, 07 Mar 2008 20:57:14 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 21:07:13 GMT]]></title><description><![CDATA[<p>Genau, hab ich vergessen zu schreiben:<br />
Den Speicher für Variabeln, die du dynamisch (das heisst mit new) deklarierst, solltest du wieder mit delete freigeben, da ansonsten der Speicherplatz nicht mehr genutzt werden kann, was bei Schleifen allmählich den Arbeitsspeicher füllt. Beim Beenden des Programms (v.a. nach längerer Laufzeit) ist der Computer dann langsamer.</p>
<pre><code class="language-cpp">while(i&lt;5)
{  int *p=new int;
   // ...
   delete p;
}
</code></pre>
<p>Wie blub² bereits sagte, ist <strong>const int i</strong> mit <strong>int const i</strong> identisch. <strong>const int i</strong> ist allerdings die gebräuchlichere Schreibweise.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470320</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470320</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 07 Mar 2008 21:07:13 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 21:29:29 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Beim Beenden des Programms (v.a. nach längerer Laufzeit) ist der Computer dann langsamer.</p>
</blockquote>
<p>Beim Beenden des Programms sind alle Memory Leaks hinfällig. Das Betrienssystem kratzt das nicht die Bohne. Übrigens, einen einzelnen &quot;int&quot; mit new anzulegen ist wohl arg übertrieben, aber sollte bestimmt nur ein Beispiel sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470328</guid><dc:creator><![CDATA[funky cat]]></dc:creator><pubDate>Fri, 07 Mar 2008 21:29:29 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 22:11:23 GMT]]></title><description><![CDATA[<p>danke jungs,ihr habt mir sehr geholfen!!</p>
<p>gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470341</guid><dc:creator><![CDATA[wanderameise12]]></dc:creator><pubDate>Fri, 07 Mar 2008 22:11:23 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 23:06:10 GMT]]></title><description><![CDATA[<p>funky cat schrieb:</p>
<blockquote>
<p>Nexus schrieb:</p>
<blockquote>
<p>Beim Beenden des Programms (v.a. nach längerer Laufzeit) ist der Computer dann langsamer.</p>
</blockquote>
<p>Beim Beenden des Programms sind alle Memory Leaks hinfällig. Das Betrienssystem kratzt das nicht die Bohne. <em>[...]</em></p>
</blockquote>
<p>Da bin ich aber anderer Meinung, zumal der Arbeitspeicher auch Zeit braucht, bis er aufgeräumt ist. Ich hab mal ein kleines Spiel programmiert, da konnte man nach dem Beenden eine Minute lang warten, bis man den Computer wieder benutzen konnte. Nachdem ich überall delete und SDL_FreeSurface (eine Grafikfunktion, die einen Zeiger freigibt, also wie delete) hinzugefügt hatte, war das Problem beseitigt.<br />
Wenn du es nicht glaubst, mach doch mal eine Schleife, die in jedem Durchgang Speicher alloziert und sehr viele Durchgänge hat (halt soviele bis es dein PC nicht mehr verkraftet :D).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470363</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 07 Mar 2008 23:06:10 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Fri, 07 Mar 2008 23:13:30 GMT]]></title><description><![CDATA[<p>Natürlich braucht es Zeit, aber der Effekt ist der Gleiche wenn du unheimlich viel Speicher allozierst und dann auf einen Schlag freigibst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470366</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470366</guid><dc:creator><![CDATA[funky cat]]></dc:creator><pubDate>Fri, 07 Mar 2008 23:13:30 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Sat, 08 Mar 2008 13:52:29 GMT]]></title><description><![CDATA[<p>Genau.</p>
<p>Warum geht eigentlich folgendes nicht? Nur wegen dem Variabelnnamen? Der Speicher ist ja eigentlich freigegeben...</p>
<pre><code class="language-cpp">int *p = new int(4);
delete p;
int *p = new int(2); // oder anderer Datentyp
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1470523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470523</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 08 Mar 2008 13:52:29 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Sat, 08 Mar 2008 14:30:18 GMT]]></title><description><![CDATA[<p>ja. korrekt wäre es so:</p>
<pre><code class="language-cpp">int *p = new int(4);
delete p;
p = new int(2);
//...
delete p;
</code></pre>
<p>nicht zweimal im selben scope eine variable mit demselben namen definieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1470538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470538</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Sat, 08 Mar 2008 14:30:18 GMT</pubDate></item><item><title><![CDATA[Reply to static variablen on Sat, 08 Mar 2008 17:48:25 GMT]]></title><description><![CDATA[<p>Ist es auch möglich, einem Variabelnnamen verschiedene Typen im gleichen Scope zuzuordnen (darauf hat sich auch mein &quot;// oder anderer Datentyp&quot; im letzten Beitrag bezogen)?</p>
<p>So funktionierts nämlich nicht:</p>
<pre><code class="language-cpp">int *p = new int(4);
delete p;
int *p = new float(2.5f);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1470631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1470631</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 08 Mar 2008 17:48:25 GMT</pubDate></item></channel></rss>