<?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[Speicher allocieren]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte ein Array von TEdit ObjektPointer anlegen.</p>
<p>Im Header mache ich folgendes</p>
<p>TEdit *ModulValues[500];</p>
<p>Im Konstruktor</p>
<p>ModulValues = new TEdit(this); //Kommt natürlich eine Fehlermeldung.<br />
also lasse ich es weg.</p>
<p>Im Header wurde ja schon ein TEdit Array Instanziert aber kein<br />
Speicher allociert was ein Problem ist.</p>
<p>Wie kann ich mit new für ein TEdit Array speicher allocieren?</p>
<p>ModulValues = new TEdit[100] ??;</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/190483/speicher-allocieren</link><generator>RSS for Node</generator><lastBuildDate>Mon, 17 Aug 2026 11:59:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/190483.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 23 Aug 2007 10:59:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Speicher allocieren on Thu, 23 Aug 2007 11:12:04 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte ein Array von TEdit ObjektPointer anlegen.</p>
<p>Im Header mache ich folgendes</p>
<p>TEdit *ModulValues[500];</p>
<p>Im Konstruktor</p>
<p>ModulValues = new TEdit(this); //Kommt natürlich eine Fehlermeldung.<br />
also lasse ich es weg.</p>
<p>Im Header wurde ja schon ein TEdit Array Instanziert aber kein<br />
Speicher allociert was ein Problem ist.</p>
<p>Wie kann ich mit new für ein TEdit Array speicher allocieren?</p>
<p>ModulValues = new TEdit[100] ??;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1350334</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1350334</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Thu, 23 Aug 2007 11:12:04 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher allocieren on Thu, 23 Aug 2007 11:02:17 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Du erstellst ein festes Array von Zeigern auf TEdit, da brauchst du kein new um das Array selber zu erstellen.<br />
Wenn du ein dynamisches Array haben willst dann must du das so dekalrieren</p>
<pre><code class="language-cpp">TEdit **ModulValues;
</code></pre>
<p>, dann kannst du auch new verwenden.<br />
Aber du solltest statt desen lieber std::vector nehmen.</p>
<p>Siehe auch in der FAQ hier im BCB-Forum, Abschnitt Komponenten benutzen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1350339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1350339</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Thu, 23 Aug 2007 11:02:17 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher allocieren on Thu, 23 Aug 2007 13:26:47 GMT]]></title><description><![CDATA[<p>akari schrieb:</p>
<blockquote>
<p>Aber du solltest statt desen lieber std::vector nehmen.</p>
</blockquote>
<p>Denke mal werde std::vector nehmen.</p>
<p>Danke Dir.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1350497</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1350497</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Thu, 23 Aug 2007 13:26:47 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher allocieren on Fri, 24 Aug 2007 21:54:03 GMT]]></title><description><![CDATA[<p>akari schrieb:</p>
<blockquote>
<p>Hallo</p>
<p>Du erstellst ein festes Array von Zeigern auf TEdit, da brauchst du kein new um das Array selber zu erstellen.<br />
akari</p>
</blockquote>
<p>Wenn ich im Header eine Array Instanz[500] erzeuge, habe ich doch noch keinen Speicher (beim Betriebssysystem) allociert oder sehe ich das falsch? (physikalisch existiert der Speicher allerdings doch<br />
schon?!), da sonst mein Prog nicht laufen würde.</p>
<p>Erst mit &lt;maloc&gt; oder &lt;new&gt; wird (beim Betriebssysystem) Speicher allociert, oder sehe ich das falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351517</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351517</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Fri, 24 Aug 2007 21:54:03 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher allocieren on Sat, 25 Aug 2007 07:27:40 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Zunächst einmal muß man nicht malloc oder new einsetzen um Speicher zu reservieren. Denn schon ein einfaches <em>int x;</em> reserviert (auf 32 bit) 4 Byte Speicher auf dem <strong>Stack</strong>. Um die Verwaltung dieses Speichern brauchst du dir keinen gedanken zu machen, das übernimmt der Compiler für dich (siehe Gültigkeit von Stack-Variablen).<br />
Mit new und malloc hingegen reservierst du manuell Speicher auf dem <strong>Heap</strong>. Der Vorteil ist : der Heap ist viel größer als der Stack und du bestimmst selber wie lange du den Speicher brauchst. Der Nachteil ist du must selber den Speicher wieder freigeben, und du must auch aufpassen das du wirklich auf reservierten Speicher zugreifst.<br />
Das ist bei Arrays nicht anders. ein statisches C-Array legt seine Elemente im Stack ab. Das heißt bei <em>int x[10]</em> werden 10 Elemente auf dem Stack angelegt, der Speicher wird automatisch verwaltet. Bei <em>TEdit</em> x[10]* wird genau deselbe gemacht : es wird automatisch der Sepicher von 10 Pointern auf TEdit verwaltet. Wichtig ist aber das damit aber nicht Speicher für die Edit-Instanzen selber verwaltet wird... die Instanzen müßen manuell zugewiesen und verwaltet werden.<br />
Auch Array kannst du mit malloc und new auf dem Heap anlegen.</p>
<p>Ich hoffe deine Frage ist beantwortet. Wenn nicht dann mnach bitte einen neuen Thread im C++ Forum auf, denn mit dem Builder hat das im speziellen nichts mehr zu tun.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351633</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 25 Aug 2007 07:27:40 GMT</pubDate></item><item><title><![CDATA[Reply to Speicher allocieren on Sat, 25 Aug 2007 07:31:46 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich glaube du verwechselst da etwas.<br />
Wenn du im Header Klasse eine Membervariable anlegst, zB. int a[50] dann wird automatisch der Speicher statisch hierfür reserviert.<br />
Der Zugriff vom Index 0 - 49 ist somit möglich.</p>
<p>Wenn du allerdings ein Array von Pointern anlegst TEdit *ModulValues[500], dann hast du ein Array von 500 nicht initialisierten Pointern angelegt. Die der Speicher für die einzelnen Pointern ist jedoch schon allokiert.</p>
<p>Du müsstes nun noch zB. folgendes machen:</p>
<pre><code class="language-cpp">for(int i = 0; i &lt; 500; i++)
{
 TEdit[i] = new TEdit(this);
 ...
 ...
}
</code></pre>
<p>Schau mal in der FAQ, dort gibts ein beispiel zum dynamischen erstellen von VCL Komponenten.<br />
Venn du es mit einem vector machst ist es aber einfacher (das dynamische verwalten). Du musst aber trotzdem noch jeden Pointer wie oben initialisieren.</p>
<p>Ich hoffe ich sage da nichts falsches <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>
<p>[EDIT] Da war jemand schneller <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/1351634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351634</guid><dc:creator><![CDATA[chbr]]></dc:creator><pubDate>Sat, 25 Aug 2007 07:31:46 GMT</pubDate></item></channel></rss>