<?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[Dynamischer Speicherplatz]]></title><description><![CDATA[<p>hi, ich brauche eine dynamiche Speicherablage, wie zum Beispiel in der statischer Ausführung : double * tab=new double[10];<br />
Jetzt besteht aber bei mir das Problem dass ich nicht weiss wieviel Speicher ich brauche und darum brauche ich eine dynamiche Version von diesem Beispiel, kann mir einer da helfen?</p>
<p>Vielen dank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/246414/dynamischer-speicherplatz</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 01:51:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/246414.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 28 Jul 2009 07:10:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dynamischer Speicherplatz on Tue, 28 Jul 2009 07:10:45 GMT]]></title><description><![CDATA[<p>hi, ich brauche eine dynamiche Speicherablage, wie zum Beispiel in der statischer Ausführung : double * tab=new double[10];<br />
Jetzt besteht aber bei mir das Problem dass ich nicht weiss wieviel Speicher ich brauche und darum brauche ich eine dynamiche Version von diesem Beispiel, kann mir einer da helfen?</p>
<p>Vielen dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1750658</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1750658</guid><dc:creator><![CDATA[ClaudeG]]></dc:creator><pubDate>Tue, 28 Jul 2009 07:10:45 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamischer Speicherplatz on Tue, 28 Jul 2009 07:17:07 GMT]]></title><description><![CDATA[<p>Null problemo!</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;assert&gt;
using namespace std;

int main()
{
    int *pnExample=NULL; // Dynamischer Zeiger
    unsigned short int nLenghtOfExample=0; 
    cout&lt;&lt;&quot;Bitte geben sie die Länge des Arrays an: &quot;;
    cin&gt;&gt;nLenghtOfExample; // Hier gibt der Benutzer die Länge an.
    pnExample=new int[nLenghtOfExample]; // Zuweisung des geforderten Speichers.
    assert(pnExample); // Überprüfung, ob Zuweisung geklappt hat.
    delete []pnExample; // Freigeben des Speichers (wichtig!).
}
</code></pre>
<p>Dynamische Speicherverwaltung klappt sowohl über Listen als auch über Zeiger. Anders als beim statischen Array kann hier der resiervierte Speicher variieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1750664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1750664</guid><dc:creator><![CDATA[Der aus dem Westen ...]]></dc:creator><pubDate>Tue, 28 Jul 2009 07:17:07 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamischer Speicherplatz on Tue, 28 Jul 2009 07:29:11 GMT]]></title><description><![CDATA[<p>Danke für deine hilfe, aber es ist nicht das was ich brauche denn mein speicher muss mit der aufgabe mitwachsen.<br />
Das heisst, ich möchte gerne ein paar daten aus einer for-Schleife speichern und diese Daten varien aber nicht nach jedem durchgang der schleife, somit will ich dass der Speicher sich automatisch anpasst wenn eine neue Variable zum speichern hinzukommt.</p>
<p>Kann mann auch sowas tun?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1750671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1750671</guid><dc:creator><![CDATA[ClaudeG]]></dc:creator><pubDate>Tue, 28 Jul 2009 07:29:11 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamischer Speicherplatz on Tue, 28 Jul 2009 07:31:28 GMT]]></title><description><![CDATA[<p>Der aus dem Westen ... schrieb:</p>
<blockquote>
<pre><code class="language-cpp">assert(pnExample); // Überprüfung, ob Zuweisung geklappt hat.
</code></pre>
</blockquote>
<p>Diese Überprüfung wird <strong>niemals</strong> fehlschlagen, da new <strong>niemals</strong> 0 zurückgibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1750672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1750672</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 28 Jul 2009 07:31:28 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamischer Speicherplatz on Tue, 28 Jul 2009 07:31:55 GMT]]></title><description><![CDATA[<p><a href="http://www.cplusplus.com/reference/stl/vector/" rel="nofollow">http://www.cplusplus.com/reference/stl/vector/</a></p>
<blockquote>
<p>Vector containers are implemented as dynamic arrays; Just as regular arrays, vector containers have their elements stored in contiguous storage locations, which means that their elements can be accessed not only using iterators but also using offsets on regular pointers to elements.</p>
<p>But unlike regular arrays, storage in vectors is handled automatically, allowing it to be expanded and contracted as needed.</p>
</blockquote>
<p>bsp:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;

int main()
{
    std::cout &lt;&lt; &quot;Anzahl: &quot;;

    int n;
    std::cin &gt;&gt; n;

    std:vector&lt;double&gt; tab;

    // Eingabe
    for ( int i = 0; i &lt; n; ++i )
    {
        std::cout &lt;&lt; i + 1 &lt;&lt; &quot;: &quot;;
        double d;
        std::cin &gt;&gt; d;
        tab.push_back( d );
    }

    // Ausgabe
    for ( int i = 0; i &lt; tab.size(); ++i )
    {
        std::cout &lt;&lt; tab.at( i ) &lt;&lt; std::endl;
        // oder
        std::cout &lt;&lt; tab[i] &lt;&lt; std::endl;
    }

    // Alternativ
    for ( std::vector&lt;double&gt;::iterator iter( tab.begin() ); iter != tab.end(); ++iter )
    {
        std::cout &lt;&lt; *iter &lt;&lt; std::endl;
    }

    // Alternativ
    std::copy( tab.begin(), tab.end(), std::ostream_iterator&lt;double&gt;( std::cout, &quot;\n&quot; ) );
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1750674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1750674</guid><dc:creator><![CDATA[zwutz]]></dc:creator><pubDate>Tue, 28 Jul 2009 07:31:55 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamischer Speicherplatz on Tue, 28 Jul 2009 07:40:03 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>Der aus dem Westen ... schrieb:</p>
<blockquote>
<pre><code class="language-cpp">assert(pnExample); // Überprüfung, ob Zuweisung geklappt hat.
</code></pre>
</blockquote>
<p>Diese Überprüfung wird <strong>niemals</strong> fehlschlagen, da new <strong>niemals</strong> 0 zurückgibt.</p>
</blockquote>
<p>Wenn die Zuweisung von Speicher nicht funktioniert hat (Heap voll oder beschädigt), gibt der new-operator zur Sicherheit die Speicherstelle NULL zurück, die dem Zeiger zugewiesen wird. Habe ich zumindest gelernt.</p>
<p>Damit ich das richtig verstehe: du willst den Benutzer eine variable Anzahl von Werten abfragen lassen (deren Anzahl er selbst nicht kennt) und diese Speichern? Dann würde ich dir eine Liste empfehlen, da diese die dynamischste Variante ist:</p>
<pre><code class="language-cpp">class Data
{
public:

    Data(){}
    ~Data(){}

    Data *pNext; // Zeigt auf ein nächtes Dataelement, welches auf ein Element zeigt, das auf ein Element zeigt, das auf ein Element zeigt... es wird aber noch kein Speicher reserviert.
    int  Value;
};
</code></pre>
<p>Du weisst aber schon, was Listen sind, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1750684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1750684</guid><dc:creator><![CDATA[Der aus dem Westen ...]]></dc:creator><pubDate>Tue, 28 Jul 2009 07:40:03 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamischer Speicherplatz on Tue, 28 Jul 2009 07:53:43 GMT]]></title><description><![CDATA[<p>Der aus dem Westen ... schrieb:</p>
<blockquote>
<p>Wenn die Zuweisung von Speicher nicht funktioniert hat (Heap voll oder beschädigt), gibt der new-operator zur Sicherheit die Speicherstelle NULL zurück, die dem Zeiger zugewiesen wird. Habe ich zumindest gelernt.</p>
</blockquote>
<p>Der new-Operator wirft std::bad_alloc in diesem Fall. 0 gibt nur der new(nothrow)-Operator zurück.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1750694</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1750694</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 28 Jul 2009 07:53:43 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamischer Speicherplatz on Tue, 28 Jul 2009 08:40:41 GMT]]></title><description><![CDATA[<p>Der aus dem Westen ... schrieb:</p>
<blockquote>
<p>Wenn die Zuweisung von Speicher nicht funktioniert hat (Heap voll oder beschädigt), gibt der new-operator zur Sicherheit die Speicherstelle NULL zurück, die dem Zeiger zugewiesen wird. Habe ich zumindest gelernt.</p>
</blockquote>
<p>Hast du hoffentlich vor 1998 gelernt. Andernfalls solltest du den Lehrer (bzw. das Buch/Tutorial) wechseln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1750726</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1750726</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 28 Jul 2009 08:40:41 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamischer Speicherplatz on Tue, 28 Jul 2009 08:51:03 GMT]]></title><description><![CDATA[<p>Mag schon sein! <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="😃"
    /> Aber was gibt der Operator dann zurück, wenn nicht NULL? Irgendwie MUSS man ja wissen, ob die Zuweisung funktioniert hat. Ich kann das bei mir nicht testen, da ich den Speicher nie voll genug kriege, und selbst wenn der voll wäre (habe ich mal mit einem hübschen Code geschafft, hinterher hat selbst den Prozess beenden und Windows runterfahren nichts gebracht), kriege ich nicht mal mehr Minesweeper auf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1750731</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1750731</guid><dc:creator><![CDATA[Der aus dem Westen ...]]></dc:creator><pubDate>Tue, 28 Jul 2009 08:51:03 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamischer Speicherplatz on Tue, 28 Jul 2009 08:52:56 GMT]]></title><description><![CDATA[<p>Der aus dem Westen ... schrieb:</p>
<blockquote>
<p>Mag schon sein! <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="😃"
    /> Aber was gibt der Operator dann zurück, wenn nicht NULL?</p>
</blockquote>
<p>Wenn eine Exception fliegt wird nichts zurückgegeben. Dann wird auch nichts zugewiesen, sondern die Exception fliegt bis zum nächsten passenden catch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1750733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1750733</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 28 Jul 2009 08:52:56 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamischer Speicherplatz on Tue, 28 Jul 2009 08:59:12 GMT]]></title><description><![CDATA[<p>Im Klartext? Soweit ich dich verstehe, fängt man die Exception entweder ab und behandelt den Fehler, oder das Betriebssystem greift ein und reisst alles nieder (das wäre meine Vorgehensweise, wenn kein freier, aber absoulut notwendiger Speicher vorhanden ist und ich nix löschen kann), oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1750735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1750735</guid><dc:creator><![CDATA[Der aus dem Westen ...]]></dc:creator><pubDate>Tue, 28 Jul 2009 08:59:12 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamischer Speicherplatz on Tue, 28 Jul 2009 09:04:54 GMT]]></title><description><![CDATA[<p>Im Klartext heißt das: Wenn operator new keinen Speicher bereitstellen kann, wird ein std::bad_alloc geworfen. Dies fliegt bis man es fängt (spätestens in main()), oder das System räumt dir das komplette Programm ab. Bei einer fliegenden Exception wird jede Funktion, aus der sie fliegt, ohne Rückgabe eines Wertes einfach verlassen.<br />
Ich persönlich lasse bad_alloc immer fliegen - wenn mir der Speicher ausgeht kann ich auch nicht mehr viel tun um das Programm noch zu retten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1750739</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1750739</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 28 Jul 2009 09:04:54 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamischer Speicherplatz on Tue, 28 Jul 2009 09:13:15 GMT]]></title><description><![CDATA[<p>Gut zu wissen. Vielen Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1750747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1750747</guid><dc:creator><![CDATA[Der aus dem Westen ...]]></dc:creator><pubDate>Tue, 28 Jul 2009 09:13:15 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamischer Speicherplatz on Tue, 28 Jul 2009 09:48:53 GMT]]></title><description><![CDATA[<p>Du kannst das Verhalten aber so ändern, dass wieder 0 zurück kommt anstatt einer Exception^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1750762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1750762</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Tue, 28 Jul 2009 09:48:53 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamischer Speicherplatz on Tue, 28 Jul 2009 12:42:35 GMT]]></title><description><![CDATA[<p>Pellaeon schrieb:</p>
<blockquote>
<p>Du kannst das Verhalten aber so ändern, dass wieder 0 zurück kommt anstatt einer Exception^^</p>
</blockquote>
<p>das hatten wir schon mal...<br />
aber selbst bei dem nothrow-new wäre das assert dort falsch - ich kann zumindest keinen logikfehler erkennen : D</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1750873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1750873</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 28 Jul 2009 12:42:35 GMT</pubDate></item></channel></rss>