<?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[Anfängerfragen]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>habe eine (wahrscheinlich) sehr leichte Frage... aber fange gerade erst mit C++.</p>
<p>Wie benutzt ihr am einfachsten die Zeit-Funktion von &quot;time.h&quot;?</p>
<p>Ich würde gerne die aktuelle Zeit an eine Variable übergeben.</p>
<p>In Ruby geht das so: variable=Time.now<br />
fertig...</p>
<p>wie macht ihr das in C++?</p>
<p>Ich möchte das 2x machen, einmal am Anfang und einmal am Ende des Programmes.<br />
Sozusagen einen Benchmark.<br />
Kann mir da jemand weiterhelfen? Danke schon einmal! <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/251059/anfängerfragen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 11:50:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/251059.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 28 Sep 2009 18:56:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Anfängerfragen on Mon, 28 Sep 2009 18:56:29 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>habe eine (wahrscheinlich) sehr leichte Frage... aber fange gerade erst mit C++.</p>
<p>Wie benutzt ihr am einfachsten die Zeit-Funktion von &quot;time.h&quot;?</p>
<p>Ich würde gerne die aktuelle Zeit an eine Variable übergeben.</p>
<p>In Ruby geht das so: variable=Time.now<br />
fertig...</p>
<p>wie macht ihr das in C++?</p>
<p>Ich möchte das 2x machen, einmal am Anfang und einmal am Ende des Programmes.<br />
Sozusagen einen Benchmark.<br />
Kann mir da jemand weiterhelfen? Danke schon einmal! <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/1785607</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785607</guid><dc:creator><![CDATA[Barcelona]]></dc:creator><pubDate>Mon, 28 Sep 2009 18:56:29 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Mon, 28 Sep 2009 19:03:37 GMT]]></title><description><![CDATA[<p>Ich hab's jetzt nicht getestet, aber ungefähr so:</p>
<pre><code class="language-cpp">#include &lt;ctime&gt;                 // In C++ nimmt man andere Header

int main ()
{
  time_t start;                       // Zeiten sind vom Typ time_t
  time (&amp;start);                      // Zeit am Anfang speichern

  // Rest des Programms

  time_t end;
  time (&amp;end);                        // Zeit am Ende speichern
  double diff = difftime (end,start); // Differenz berechnen

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1785609</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785609</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 28 Sep 2009 19:03:37 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Mon, 28 Sep 2009 19:05:18 GMT]]></title><description><![CDATA[<p>Wenn es nur darum geht, eine Zeit zu messen, mach es am besten so:</p>
<pre><code class="language-cpp">#include &lt;ctime&gt;
#include &lt;iostream&gt;

int main()
{
   unsigned int StartZeit = static_cast&lt;unsigned int&gt;(time(0));

   //programm arbeiten lassen

   std::cout&lt;&lt;&quot;Zeit vergangen: &quot;&lt;&lt;time(0)-StartZeit&lt;&lt;&quot; Sekunden.&quot;&lt;&lt;std::endl;
}
</code></pre>
<p>Falls du unter Windows arbeitest und eine Millisekunden genaue Auswetung brauchst nimm die Funktion &quot;GetTickCount()&quot;. Dazu brauchst du &lt;windows.h&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785610</guid><dc:creator><![CDATA[sadfsg]]></dc:creator><pubDate>Mon, 28 Sep 2009 19:05:18 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Mon, 28 Sep 2009 19:42:53 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Ich hab's jetzt nicht getestet, aber ungefähr so:</p>
<pre><code class="language-cpp">#include &lt;ctime&gt;                 // In C++ nimmt man andere Header

int main ()
{
  time_t start;                       // Zeiten sind vom Typ time_t
  time (&amp;start);                      // Zeit am Anfang speichern

  // Rest des Programms

  time_t end;
  time (&amp;end);                        // Zeit am Ende speichern
  double diff = difftime (end,start); // Differenz berechnen

}
</code></pre>
</blockquote>
<p>Danke, dass klappt sehr gut! <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 />
Nur bekomm' ich in meinem kleinen Test einfach nur 0 heraus...<br />
wie kann ich die Ergebniszahl den genauer (Milisekunden) bestimmen lassen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785627</guid><dc:creator><![CDATA[Barcelona]]></dc:creator><pubDate>Mon, 28 Sep 2009 19:42:53 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Mon, 28 Sep 2009 20:09:53 GMT]]></title><description><![CDATA[<p>Barcelona schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Ich hab's jetzt nicht getestet, aber ungefähr so:</p>
<pre><code class="language-cpp">#include &lt;ctime&gt;                 // In C++ nimmt man andere Header

int main ()
{
  time_t start;                       // Zeiten sind vom Typ time_t
  time (&amp;start);                      // Zeit am Anfang speichern

  // Rest des Programms

  time_t end;
  time (&amp;end);                        // Zeit am Ende speichern
  double diff = difftime (end,start); // Differenz berechnen

}
</code></pre>
</blockquote>
<p>Danke, dass klappt sehr gut! <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 />
Nur bekomm' ich in meinem kleinen Test einfach nur 0 heraus...<br />
wie kann ich die Ergebniszahl den genauer (Milisekunden) bestimmen lassen?</p>
</blockquote>
<p>idR macht man das, indem man die zu testende Operation x mal ausführt - aber es gibt auch noch OS-abhängige Fkt, die eine höhere Auflösung haben...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785633</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 28 Sep 2009 20:09:53 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Mon, 28 Sep 2009 20:32:57 GMT]]></title><description><![CDATA[<p>Der Code den ich also jetzt gerade benutze, gibt nur ganze Sekunden an? Oder auch Zehntel-Sekunden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785636</guid><dc:creator><![CDATA[Barcelona]]></dc:creator><pubDate>Mon, 28 Sep 2009 20:32:57 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Mon, 28 Sep 2009 20:49:22 GMT]]></title><description><![CDATA[<p>bei solchen fragen lohnt sich immer ein blick in die referenz deiner wahl<br />
ich z.bsp. bevorzuge <a href="http://www.cplusplus.com/reference/" rel="nofollow">http://www.cplusplus.com/reference/</a></p>
<p>dort header ctime -&gt; fkt time -&gt; <a href="http://www.cplusplus.com/reference/clibrary/ctime/time/" rel="nofollow">http://www.cplusplus.com/reference/clibrary/ctime/time/</a></p>
<p>wird aber erst im bsp. ausdrücklich erwähnt, dass es sekunden sind^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785638</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 28 Sep 2009 20:49:22 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Mon, 28 Sep 2009 21:21:19 GMT]]></title><description><![CDATA[<p>In der Referenz siehst du dann auch die Funktion clock, die eine (etwas) genauere Zeitmessung ermöglicht, aber dafür nicht geeignet ist, die Uhrzeit zu bestimmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785650</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 28 Sep 2009 21:21:19 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Tue, 29 Sep 2009 07:09:43 GMT]]></title><description><![CDATA[<p>Also Clock hab ich mal genommen, um zu messen wie lange ich auf eine Antwort an eine Socketschnittstelle warten musste.... War ne blöde Idee, weil die CPU in derzeit (fast) nix gemacht hat. Daher kam 0 raus, obwohl es eigentlich rund 1sec gedauert hat <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 bitte nicht versuchen Zeit zu messen <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/1785721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785721</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Tue, 29 Sep 2009 07:09:43 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Tue, 29 Sep 2009 07:39:12 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<pre><code class="language-cpp">time_t start;                       // Zeiten sind vom Typ time_t
  time (&amp;start);                      // Zeit am Anfang speichern
</code></pre>
</blockquote>
<p>sadfsg schrieb:</p>
<blockquote>
<pre><code class="language-cpp">unsigned int StartZeit = static_cast&lt;unsigned int&gt;(time(0));
</code></pre>
</blockquote>
<p>Warum macht ihr es eigentlich immer so kompliziert? Anfänger verwirren? <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>
<pre><code class="language-cpp">time_t start = time(0); // fertig
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1785734</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785734</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 29 Sep 2009 07:39:12 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Tue, 29 Sep 2009 13:38:20 GMT]]></title><description><![CDATA[<p>[quote=&quot;LordJaxom&quot;]</p>
<p>SeppJ schrieb:</p>
<blockquote>
<pre><code class="language-cpp">time_t start = time(0); // fertig
</code></pre>
</blockquote>
<p>Was macht der Code jetzt genau?</p>
<p>start ist die Variable vom Typ time_t?<br />
Diese bekommt den Wert time(0), also beginnt bei Null???</p>
<p>Und wie würde ich damit den 2. Wert messen, am Ende des Programmes? <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/1785948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785948</guid><dc:creator><![CDATA[Barcelona]]></dc:creator><pubDate>Tue, 29 Sep 2009 13:38:20 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Tue, 29 Sep 2009 13:55:16 GMT]]></title><description><![CDATA[<p>Barcelona schrieb:</p>
<blockquote>
<p>Was macht der Code jetzt genau?</p>
<p>start ist die Variable vom Typ time_t?<br />
Diese bekommt den Wert time(0), also beginnt bei Null???</p>
<p>Und wie würde ich damit den 2. Wert messen, am Ende des Programmes? <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>Lies die verlinkte Referenz. Da steht drin, was es mit der 0 auf sich hat.</p>
<p>Soviel zum Thema 'Anfänger verwirren' <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785968</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785968</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 29 Sep 2009 13:55:16 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Tue, 29 Sep 2009 13:58:00 GMT]]></title><description><![CDATA[<p>jupp und was soll er mit time_t denn anfangen, ist in nem integer doch hundertmal besser für ihn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785971</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785971</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Tue, 29 Sep 2009 13:58:00 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Tue, 29 Sep 2009 14:28:33 GMT]]></title><description><![CDATA[<p>Habt ihr auch einen Befehl, um das Skript (oder die Befehlsleiste, weiß nicht wie das in C++ richtig genannt wird...) schlafen zu lassen?</p>
<p>In Ruby macht man das mit: sleep(5) zum Beispiel</p>
<p>Gibt es den Befehl auch in C++?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785990</guid><dc:creator><![CDATA[Barcelona]]></dc:creator><pubDate>Tue, 29 Sep 2009 14:28:33 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Tue, 29 Sep 2009 15:15:28 GMT]]></title><description><![CDATA[<p>Hat sich erledigt... <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="😃"
    /></p>
<p>#include &lt;windows.h&gt;</p>
<p>Sleep(2000)</p>
<p>Wenn noch wer einen guten Vorschlag hat, um auch die Zehntelsekunden anzeigen zu lassen... immer raus damit <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>Wieso ist das Sleep eigentlich großgeschrieben? Konsonante?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1786020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1786020</guid><dc:creator><![CDATA[Barcelona]]></dc:creator><pubDate>Tue, 29 Sep 2009 15:15:28 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Tue, 29 Sep 2009 15:35:05 GMT]]></title><description><![CDATA[<p>Barcelona schrieb:</p>
<blockquote>
<p>Wieso ist das Sleep eigentlich großgeschrieben? Konsonante?</p>
</blockquote>
<p>Weil das nicht zu C++ gehört sondern eine spezielle Microsoft-Bibliothek. Die können ihren Kram nennen wie sie wollen.</p>
<p>Für Zehntelsekunden: Wie schon gesagt, clock kann dies möglicherweise leisten. Aber da sind eher weitere betriebssystemabhängige Funktionen gefragt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1786033</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1786033</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 29 Sep 2009 15:35:05 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Tue, 29 Sep 2009 15:54:23 GMT]]></title><description><![CDATA[<p>Tim06TR schrieb:</p>
<blockquote>
<p>jupp und was soll er mit time_t denn anfangen, ist in nem integer doch hundertmal besser für ihn.</p>
</blockquote>
<p>Rate mal, was <code>time_t</code> mit allergrösster Wahrscheinlichkeit für ein Datentyp ist.</p>
<p>Mit <code>time_t</code> spart er sich aber die unnötige Casterei und allfällige (unter Umständen berechtigte) Warnungen und kann direkt mit dem passenden Datentypen arbeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1786060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1786060</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 29 Sep 2009 15:54:23 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Tue, 29 Sep 2009 15:55:20 GMT]]></title><description><![CDATA[<p>:p <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> ups</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1786061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1786061</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Tue, 29 Sep 2009 15:55:20 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Sun, 04 Oct 2009 19:59:26 GMT]]></title><description><![CDATA[<p>Nochmal eine Anfängerfrage... zu einer anderen Sache.</p>
<p>Hab' ein Programmbeispiel gesehen zur Speicherzuweisung, welches<br />
checkt wieviel Speicher zur Verfügung steht.</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

int main()
{
    char *p;
    for (int i=1; ; i++) 
    {
        p = new char[10000]; // Pointer auf einen Array mit 10000 Stellen
        if (p==0) break;
        cout &lt;&lt; &quot;RAM zugeteilt: &quot; &lt;&lt; 10 * i &lt;&lt; &quot;kb\n&quot;; // 10 kb pro Charakter
    }
    return 0;
}
</code></pre>
<p>Hab dazu ein paar Fragen:<br />
1. In der for-Schleife: Was genau kommt in so eine Schleife?<br />
Zuerst Deklaration von Variablen? Dann Endbedingung? Dann Schritt, wenn Schleife durchlaufen wurde???</p>
<p>2. Ist mein Kommentar zu &quot;p&quot; richtig?<br />
Wenn ja, wieso findet das Programm dann bei mir zB 2 GB Ram, bei 10.000 Stellen<br />
im Array je 10 kb, wär das nur 1 GB maximal? Oder wie ist das?</p>
<p>Weiß da jemand weiter, danke schon einmal! <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/1788060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1788060</guid><dc:creator><![CDATA[Barcelona]]></dc:creator><pubDate>Sun, 04 Oct 2009 19:59:26 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Sun, 04 Oct 2009 20:30:37 GMT]]></title><description><![CDATA[<p>1. Ja, aber das hättest du auch aus einem Anfängerbuch erfahren können..</p>
<p>2. Ja, allerdings ist p eigentlich lediglich ein Zeiger auf ein char, aber da ein Array von char implizit in ein char Zeiger umgewandelt werden kann stimmt das so.<br />
Den zweiten Teil verstehe ich nicht so ganz.. Du allokierst da ja in jedem Schritt 10'000 Byte. Und das geht einfach so lange, bis new fehl schlägt, was nicht bereits sein muss, wenn dein RAM voll ist. Es könnte theoretisch auch was auf die HD ausgelagert werden o.ä. So kannst du also die Grösse des RAMs nicht ausmessen. <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>Und bitte gib den Speicher am Ende wieder frei. Auch wenn es wahrscheinlich dein OS für dich macht sollte ein Programm den Speicher, denn es allokiert wieder frei geben. (siehe delete)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1788069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1788069</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 04 Oct 2009 20:30:37 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Sun, 04 Oct 2009 20:35:33 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>1. Ja, aber das hättest du auch aus einem Anfängerbuch erfahren können..</p>
</blockquote>
<p>Ja, stimmt wohl. Hab auch eins <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="😉"
    /> Mich wunderte nur, dass man die 2. Stelle einfach leer lassen kann</p>
<p>drakon schrieb:</p>
<blockquote>
<p>2. Ja, allerdings ist p eigentlich lediglich ein Zeiger auf ein char, aber da ein Array von char implizit in ein char Zeiger umgewandelt werden kann stimmt das so.<br />
Den zweiten Teil verstehe ich nicht so ganz.. Du allokierst da ja in jedem Schritt 10'000 Byte. Und das geht einfach so lange, bis new fehl schlägt, was nicht bereits sein muss, wenn dein RAM voll ist. Es könnte theoretisch auch was auf die HD ausgelagert werden o.ä. So kannst du also die Grösse des RAMs nicht ausmessen. <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>Und bitte gib den Speicher am Ende wieder frei. Auch wenn es wahrscheinlich dein OS für dich macht sollte ein Programm den Speicher, denn es allokiert wieder frei geben. (siehe delete)</p>
</blockquote>
<p>Aber was sagt denn dann die 10000 in</p>
<pre><code>p = new char[10000];
</code></pre>
<p>aus?</p>
<p>Und den delete Befehl... einfach</p>
<pre><code>delete p
</code></pre>
<p>am Ende, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1788073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1788073</guid><dc:creator><![CDATA[Barcelona]]></dc:creator><pubDate>Sun, 04 Oct 2009 20:35:33 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Sun, 04 Oct 2009 20:41:45 GMT]]></title><description><![CDATA[<p>Man kann alle Stellen leer lassen. <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="😉"
    /> (das gibt dann das pendant zu while(1))</p>
<p>Die 10'000 sagen aus, dass du da ein Array mit 10'000 char's anforderst. Zurückgegeben wird ein Zeiger auf das erste Element.</p>
<p>Nein. Das freigeben klappt in deinem Fall nicht so einfach.<br />
1. Wenn du new hast, dann gibst du mit delete frei und wenn du <code>new []</code> hast, dann gibst du den Speicher auch wieder mit <code>delete[]</code> frei.</p>
<p>In deinem Falle verlierst du die den Zeiger auf die Arrays, weil du sie jedes mal überschreibst. Du musst dir also die Zeiger merken und nicht jedes mal überschreiben. (z.B in einem Array, oder einem Container der Standardbibliothek, wie z.B std::vector, std::list o.ä). Dann kannst du am Ende deines Programmes den ganzen Container durchlaufen und jedes Element freigeben.</p>
<p>Also ich würde dir dringend raten Speicherverwaltung in C++ nochmal genau anzuschauen. Das scheint dir noch nicht ganz soo klar zu sein. (ist aber recht wichtig).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1788076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1788076</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 04 Oct 2009 20:41:45 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Sun, 04 Oct 2009 20:45:20 GMT]]></title><description><![CDATA[<p>Ach ja, man prüft den Erfolg von <code>new</code> nicht, indem man sich den zurückgegebenen Zeiger anschaut (es sei denn, man verwendet Placement New mit <code>std::nothrow</code> ). Besser mit <code>try/catch</code> auf <code>std::bad_alloc</code> -Exceptions abfragen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1788078</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1788078</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 04 Oct 2009 20:45:20 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Sun, 04 Oct 2009 21:04:16 GMT]]></title><description><![CDATA[<p>Barcelona schrieb:</p>
<blockquote>
<p>Nochmal eine Anfängerfrage... zu einer anderen Sache.</p>
</blockquote>
<p>Neue Frage -&gt; neuer Thread</p>
<p>Barcelona schrieb:</p>
<blockquote>
<p>Hab' ein Programmbeispiel gesehen zur Speicherzuweisung, welches<br />
checkt wieviel Speicher zur Verfügung steht.</p>
</blockquote>
<p>Leider ist das dumm <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f623.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--persevering_face"
      title="&gt;.&lt;"
      alt="😣"
    /></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;new&gt;

int main()
{
  char *p;
  for (int i=1; ; i++) 
  {
    p = new(std::nothrow) char[1024*10]; //10*1024Byte = 10*1kB = 10kB
    if (p == 0)
      break;
    cout &lt;&lt; &quot;RAM zugeteilt: &quot; &lt;&lt; 10*i &lt;&lt; &quot;kB&quot; &lt;&lt; std::endl;
  }

//schließen der konsole evtl verhindern!?
}
</code></pre>
<blockquote>
<p>Hab dazu ein paar Fragen:<br />
1. In der for-Schleife: Was genau kommt in so eine Schleife?<br />
Zuerst Deklaration von Variablen? Dann Endbedingung? Dann Schritt, wenn Schleife durchlaufen wurde???</p>
</blockquote>
<p>1. google bzw buch/tut deiner wahl!?<br />
2. endbedingung stimmt allerdings nicht ganz - eher eine so-lange bedingung</p>
<blockquote>
<p>2. Ist mein Kommentar zu &quot;p&quot; richtig?<br />
Wenn ja, wieso findet das Programm dann bei mir zB 2 GB Ram, bei 10.000 Stellen<br />
im Array je 10 kb, wär das nur 1 GB maximal? Oder wie ist das?</p>
</blockquote>
<p>jopp - der zu p stimmt ausnahmsweise mal^^</p>
<p>kA - deine Werte haben eh alle nich gestimmt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
<blockquote>
<p>Weiß da jemand weiter, danke schon einmal! <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>
</blockquote>
<p>Jopp - ich hab dir mal nen funktionierenden Quellcode gepostet...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1788084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1788084</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 04 Oct 2009 21:04:16 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Sun, 04 Oct 2009 21:21:12 GMT]]></title><description><![CDATA[<p>Danke erstmal für alle Antworten...<br />
hab' mich heute das erste Mal mit dem Thema beschäftigt,...</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;new&gt;

int main()
{
  char *p;
  for (int i=1; ; i++)
  {
    p = new(std::nothrow) char[1024*10]; //10*1024Byte = 10*1kB = 10kB
    if (p == 0)
      break;
    cout &lt;&lt; &quot;RAM zugeteilt: &quot; &lt;&lt; 10*i &lt;&lt; &quot;kB&quot; &lt;&lt; std::endl;
  }

//schließen der konsole evtl verhindern!?
}
</code></pre>
<p>Wofür brauche ich denn das</p>
<pre><code>#include &lt;new&gt;
</code></pre>
<p>? Ich dachte die &quot;new&quot; und<br />
&quot;delete&quot; Funktion für Speicherzuteilung brauchen keinen Extra-Header...</p>
<p>Und was macht das</p>
<pre><code>new(std::nothrow)
</code></pre>
<p>? <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/1788090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1788090</guid><dc:creator><![CDATA[Barcelona]]></dc:creator><pubDate>Sun, 04 Oct 2009 21:21:12 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfragen on Sun, 04 Oct 2009 21:40:37 GMT]]></title><description><![CDATA[<p>1. nimm doch bitte die schaltfläche <strong>C/C++</strong> anstatt die mit Code beschriftete - dann kann man so gar noch was lesen...</p>
<p>Barcelona schrieb:</p>
<blockquote>
<p>Wofür brauche ich denn das <code>#include &lt;new&gt;</code> ?</p>
</blockquote>
<p>für das std::nothrow</p>
<p>Barcelona schrieb:</p>
<blockquote>
<p>Und was macht das <code>new(std::nothrow)</code> ?</p>
</blockquote>
<p>new wirft normalerweise eine exception, wenn nicht mehr genug speicher vorhanden ist<br />
wenn man aber möchte, dass es 0 zurückgibt und keine exception wirft, kann man new(std::nothrow) schreiben und schon funktioniert es genau so, wie es in dem fall wohl sinn machen würde...</p>
<p>bb</p>
<p>PS: Das nächste mal lies doch bitte zu erst mal in deinem Buch/Tutorial ein paar Seiten dazu und wenn dort nix steht, google bzw <a href="http://www.cplusplus.com/reference/" rel="nofollow">http://www.cplusplus.com/reference/</a><br />
oben links eingeben, was du suchst:<br />
<a href="http://www.cplusplus.com/query/search.cgi?q=nothrow" rel="nofollow">http://www.cplusplus.com/query/search.cgi?q=nothrow</a><br />
erstes ergebnis:<br />
<a href="http://www.cplusplus.com/reference/std/new/nothrow/" rel="nofollow">http://www.cplusplus.com/reference/std/new/nothrow/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1788093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1788093</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 04 Oct 2009 21:40:37 GMT</pubDate></item></channel></rss>