<?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[Allokier-Fehler]]></title><description><![CDATA[<p>Hi <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>ich möchte meiner Klasse Speicher allokieren mit malloc. In der Klasse ist eine CString Variable.</p>
<p>Mit Integern funktioniert das.<br />
Wenn ich nun auf die CString Variable zugreifen will, gibt er eine Fehlermeldung aus und sagt &lt;schlechtes Ptr&gt;.</p>
<p>Ich hab folgendermaßen allokiert:<br />
im Header</p>
<pre><code class="language-cpp">struct STRCT_SORTHISTORIEDATEN_Test
{
int	m_iTag;								// wird anhand des Datums identifiziert und als eine Nummer gespeichert: CTime:getTime();
CString csDatum;
};
</code></pre>
<p>Dann erstellt</p>
<pre><code class="language-cpp">STRCT_SORTHISTORIEDATEN_Test	*m_pstrctSortHistorieDatenA;

int m_strctNeueImpfdaten_Anzahl = 20;
m_pstrctSortHistorieDatenA      = (STRCT_SORTHISTORIEDATEN_Test*) malloc(m_strctNeueImpfdaten_Anzahl*sizeof(STRCT_SORTHISTORIEDATEN_Test)); // Allokiere 10 Arrays
</code></pre>
<p>Nun will ich csDatum einen Wert zuweisen mit</p>
<pre><code class="language-cpp">m_pstrctSortHistorieDatenA[0].csDatum  = _T(&quot;d&quot;);   // Fehler, denn m_pstrctSortHistorieDatenA[0].csDatum hat ein &lt;schlechte ptr&gt;
</code></pre>
<p>Wäre super, wenn mir jmd helfen könnt!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/307957/allokier-fehler</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 08:08:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/307957.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 10 Sep 2012 15:58:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Allokier-Fehler on Mon, 10 Sep 2012 15:58:06 GMT]]></title><description><![CDATA[<p>Hi <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>ich möchte meiner Klasse Speicher allokieren mit malloc. In der Klasse ist eine CString Variable.</p>
<p>Mit Integern funktioniert das.<br />
Wenn ich nun auf die CString Variable zugreifen will, gibt er eine Fehlermeldung aus und sagt &lt;schlechtes Ptr&gt;.</p>
<p>Ich hab folgendermaßen allokiert:<br />
im Header</p>
<pre><code class="language-cpp">struct STRCT_SORTHISTORIEDATEN_Test
{
int	m_iTag;								// wird anhand des Datums identifiziert und als eine Nummer gespeichert: CTime:getTime();
CString csDatum;
};
</code></pre>
<p>Dann erstellt</p>
<pre><code class="language-cpp">STRCT_SORTHISTORIEDATEN_Test	*m_pstrctSortHistorieDatenA;

int m_strctNeueImpfdaten_Anzahl = 20;
m_pstrctSortHistorieDatenA      = (STRCT_SORTHISTORIEDATEN_Test*) malloc(m_strctNeueImpfdaten_Anzahl*sizeof(STRCT_SORTHISTORIEDATEN_Test)); // Allokiere 10 Arrays
</code></pre>
<p>Nun will ich csDatum einen Wert zuweisen mit</p>
<pre><code class="language-cpp">m_pstrctSortHistorieDatenA[0].csDatum  = _T(&quot;d&quot;);   // Fehler, denn m_pstrctSortHistorieDatenA[0].csDatum hat ein &lt;schlechte ptr&gt;
</code></pre>
<p>Wäre super, wenn mir jmd helfen könnt!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250005</guid><dc:creator><![CDATA[AnnaTX]]></dc:creator><pubDate>Mon, 10 Sep 2012 15:58:06 GMT</pubDate></item><item><title><![CDATA[Reply to Allokier-Fehler on Mon, 10 Sep 2012 16:10:10 GMT]]></title><description><![CDATA[<p>WHAT THE... was machst du denn da? Und die Aneinanderreihung der Buchstaben macht mich ganz wirr im Kopf. Was willst du genau machen? Willst du 10 Arrays oder ein Array mit 10 Elementen? Was ist das Ziel deines Programmstücks?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250008</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Mon, 10 Sep 2012 16:10:10 GMT</pubDate></item><item><title><![CDATA[Reply to Allokier-Fehler on Mon, 10 Sep 2012 16:11:33 GMT]]></title><description><![CDATA[<p>[quote=&quot;AnnaTX&quot;]</p>
<pre><code class="language-cpp">malloc(m_strctNeueImpfdaten_Anzahl*sizeof(STRCT_SORTHISTORIEDATEN_Test)); // Allokiere 10 Arrays
</code></pre>
<p>Abgesehen davon, ist das in C++ undefined behaviour.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250009</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Mon, 10 Sep 2012 16:11:33 GMT</pubDate></item><item><title><![CDATA[Reply to Allokier-Fehler on Mon, 10 Sep 2012 16:17:28 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<p>AnnaTX schrieb:</p>
<blockquote>
<pre><code class="language-cpp">malloc(m_strctNeueImpfdaten_Anzahl*sizeof(STRCT_SORTHISTORIEDATEN_Test)); // Allokiere 10 Arrays
</code></pre>
<p>Abgesehen davon, ist das in C++ undefined behaviour.</p>
</blockquote>
</blockquote>
<p>Das sehe ich jetzt so auf Anhieb nicht. Mag mich wer aufklaeren? Also abgesehen davon, dass der Konstruktor von CString nicht aufgerufen wird, was prinzipiell auch danach geschehen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250010</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 10 Sep 2012 16:17:28 GMT</pubDate></item><item><title><![CDATA[Reply to Allokier-Fehler on Mon, 10 Sep 2012 16:17:41 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<p>WHAT THE... was machst du denn da? Und die Aneinanderreihung der Buchstaben macht mich ganz wirr im Kopf. Was willst du genau machen? Willst du 10 Arrays oder ein Array mit 10 Elementen? Was ist das Ziel deines Programmstücks?</p>
</blockquote>
<p>oh, ich meinte 20, nicht 10.</p>
<p>Ich will im Prinzip das hier:<br />
STRCT_SORTHISTORIEDATEN_Test m_pstrctSortHistorieDatenA[20];</p>
<p>Aber da ich die Klasse später evtl. vergrößern will (mit realloc), da ich evtl mehr als 20 Elemente brauche, will ich es als Pointer deklarieren und mit malloc 20 Element von STRCT_SORTHISTORIEDATEN_Test erstellen.<br />
Verstehst Du was ich meine?</p>
<p>Ja, ich schreibe zu Vaiablen immer die Typkürzel vor dem Namen. Ich weiß, dass sieht doof aus. Wie machst Du das denn ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250011</guid><dc:creator><![CDATA[AnnaTX]]></dc:creator><pubDate>Mon, 10 Sep 2012 16:17:41 GMT</pubDate></item><item><title><![CDATA[Reply to Allokier-Fehler on Mon, 10 Sep 2012 16:21:52 GMT]]></title><description><![CDATA[<p>std::vector</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250013</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Mon, 10 Sep 2012 16:21:52 GMT</pubDate></item><item><title><![CDATA[Reply to Allokier-Fehler on Mon, 10 Sep 2012 16:25:29 GMT]]></title><description><![CDATA[<p>Die Frage ist: C oder C++?</p>
<p>C++: Nimm einfach std::vector. Problem gelöst.<br />
C: Au weia. Mach erstmal die ganzen Casts weg, damit die nicht eventuelle Fehler verdecken und schraub Compilerwarnungen hoch. Ansonsten bist du mit malloc/realloc schon auf dem richtigen Weg. Falls trotz warnungsloser Übersetzung immer noch nichts funktionieren sollte zeig mal mehr Code, siehe dritter Link in meiner Signatur.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250015</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 10 Sep 2012 16:25:29 GMT</pubDate></item><item><title><![CDATA[Reply to Allokier-Fehler on Mon, 10 Sep 2012 16:26:21 GMT]]></title><description><![CDATA[<p>AnnaTX schrieb:</p>
<blockquote>
<p>Ich will im Prinzip das hier:<br />
STRCT_SORTHISTORIEDATEN_Test m_pstrctSortHistorieDatenA[20];</p>
<p>Aber da ich die Klasse später evtl. vergrößern will (mit realloc), da ich evtl mehr als 20 Elemente brauche, will ich es als Pointer deklarieren und mit malloc 20 Element von STRCT_SORTHISTORIEDATEN_Test erstellen.<br />
Verstehst Du was ich meine?</p>
</blockquote>
<p>Ja, du weißt im Voraus nicht, wie viele Elemente du schlußendlich wirklich brauchst. Das kommmt relativ oft vor, dieses Problem. Lösung: std::vector, alles andere ist hier fehl am Platz.</p>
<p>AnnaTX schrieb:</p>
<blockquote>
<p>Ja, ich schreibe zu Vaiablen immer die Typkürzel vor dem Namen. Ich weiß, dass sieht doof aus. Wie machst Du das denn ?</p>
</blockquote>
<p>Ich schreibe alles klein. Wörter trenne ich durch einen Unterstrich: int number_of_xy = z;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250016</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Mon, 10 Sep 2012 16:26:21 GMT</pubDate></item><item><title><![CDATA[Reply to Allokier-Fehler on Mon, 10 Sep 2012 16:45:16 GMT]]></title><description><![CDATA[<p>std::vector verwendet namespace und ich will auf möglichst viele Zusatzbibliotheken verzichten, damit es auf möglichst vielen Rechnern reibungslos und ohne viel zu installieren läuft.</p>
<p>Ich habe sonst nur WinApi-Befehle.<br />
Ich versuche es mal mit den Compiler-Warnungen und melde mich nochmal.</p>
<p>Vielen Dank für Eure Antworten <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/2250020</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250020</guid><dc:creator><![CDATA[AnnaTX]]></dc:creator><pubDate>Mon, 10 Sep 2012 16:45:16 GMT</pubDate></item><item><title><![CDATA[Reply to Allokier-Fehler on Mon, 10 Sep 2012 16:51:00 GMT]]></title><description><![CDATA[<p>AnnaTX schrieb:</p>
<blockquote>
<p>Ja, ich schreibe zu Vaiablen immer die Typkürzel vor dem Namen. Ich weiß, dass sieht doof aus. Wie machst Du das denn ?</p>
</blockquote>
<p>Wie würdest du denn diesen Typ abkürzen? Bitte mit Begründung!</p>
<pre><code class="language-cpp">template &lt;typename T1, typename T2&gt; 
using Typ = std::function&lt;std::array&lt;T1, 3&gt;&amp;(const std::vector&lt;T2&gt;&amp;, int)&gt;;
</code></pre>
<p>Das ist eine Klasse, aber auch aufrufbar, aber auch ein Template und irgendwie funktionspointerartig. Und das ist nur die std::function, die ganze Typinformation im Inneren musst ja auch noch komplett rein. Wie macht man das zum Beispiel mit der 3?</p>
<p><code>Typ T10T20Ccp2T11T12CAT11T10T213Rc2T13T23ApconstRT13T20T23di_foo</code> ?</p>
<p>AnnaTX schrieb:</p>
<blockquote>
<p>std::vector verwendet namespace und ich will auf möglichst viele Zusatzbibliotheken verzichten, damit es auf möglichst vielen Rechnern reibungslos und ohne viel zu installieren läuft.</p>
</blockquote>
<p>Du bist sehr verwirrt. Dir fehlen allerwichtigste Grundlagen. Hast du früher mal Pascal gemacht? Du bringst hier Dinge durcheinander. namspace ist so sehr Bibliothek, wie das Semikolon eine Bibliothek ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250023</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 10 Sep 2012 16:51:00 GMT</pubDate></item><item><title><![CDATA[Reply to Allokier-Fehler on Mon, 10 Sep 2012 16:51:30 GMT]]></title><description><![CDATA[<p>AnnaTX schrieb:</p>
<blockquote>
<p>std::vector verwendet namespace und ich will auf möglichst viele Zusatzbibliotheken verzichten, damit es auf möglichst vielen Rechnern reibungslos und ohne viel zu installieren läuft.</p>
</blockquote>
<p>Die Standardbibliothek ist bei _jedem_ C++-Compiler dabei. Das ist keine Zusatzbibliothek.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250025</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Mon, 10 Sep 2012 16:51:30 GMT</pubDate></item><item><title><![CDATA[Reply to Allokier-Fehler on Mon, 10 Sep 2012 17:02:32 GMT]]></title><description><![CDATA[<p>AnnaTX schrieb:</p>
<blockquote>
<p>std::vector verwendet namespace und ich will auf möglichst viele Zusatzbibliotheken verzichten, damit es auf möglichst vielen Rechnern reibungslos und ohne viel zu installieren läuft.</p>
<p>Ich habe sonst nur WinApi-Befehle.</p>
</blockquote>
<p>Hahaha danke dass du mir den Tag versüßt hast. Die beiden Sätze hintereinander sind einfach zu gut. <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>Kellerautomat schrieb:</p>
<blockquote>
<p>Die Standardbibliothek ist bei _jedem_ C++-Compiler dabei. Das ist keine Zusatzbibliothek.</p>
</blockquote>
<p>Nu ja.. es gibt auch noch freestanding implementations, die brauchen &lt;vector&gt; nicht mitzuliefern.</p>
<p>@AnnaTX<br />
Nimm einfach std::vector, wenn dein Programm auch auf Digitaluhren, Waschmaschinen und in Aufzügen laufen soll, meldeste dich noch mal. Und du solltest dir mal den Unterschied zwischen der Standardbibliothek und dynamisch und statisch gelinkten externen Bibliotheken angucken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250030</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Mon, 10 Sep 2012 17:02:32 GMT</pubDate></item><item><title><![CDATA[Reply to Allokier-Fehler on Mon, 10 Sep 2012 17:06:02 GMT]]></title><description><![CDATA[<p>Wenn du std::vector nicht verwenden kannst, weil dein Compiler von 1993 ist oder so, dann benutz wenigstens new statt malloc, damit die Objekte alle korrekt konstruiert werden. Das was du da vorhast ist mit malloc nicht machbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250032</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Mon, 10 Sep 2012 17:06:02 GMT</pubDate></item><item><title><![CDATA[Reply to Allokier-Fehler on Tue, 11 Sep 2012 07:04:41 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>AnnaTX schrieb:</p>
<blockquote>
<p>std::vector verwendet namespace und ich will auf möglichst viele Zusatzbibliotheken verzichten, damit es auf möglichst vielen Rechnern reibungslos und ohne viel zu installieren läuft.</p>
</blockquote>
<p>Die Standardbibliothek ist bei _jedem_ C++-Compiler dabei. Das ist keine Zusatzbibliothek.</p>
</blockquote>
<p>Noch viel einfacher: die Standardbibliothek brauchst du nur auf dem Rechner, auf dem du kompilierst. Das fertige Programm kannst du dann munter rumreichen, da brauchst du keine &quot;Standardbibliothek-dll&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250149</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250149</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Tue, 11 Sep 2012 07:04:41 GMT</pubDate></item><item><title><![CDATA[Reply to Allokier-Fehler on Tue, 11 Sep 2012 08:12:59 GMT]]></title><description><![CDATA[<p>Der grundlegende Fehler, der hier passiert ist, dass der Konstruktor von CString nicht aufgerufen wird. Malloc reserviert nur Speicher mit zufälligen Inhalt. Dem int ist das egal, da jedes Bitmuster ein gültiges int ist. Bei CString sieht das anders aus. Der hält sicher einen Zeiger auf seine Daten und wenn dieser mit einem zufälligen Bitmuster gefüllt ist, dann zeigt der Zeiger halt irgendwo hin.</p>
<p>Hier wurden ja bereits Lösungen vorgeschlagen. Die naheliegende wäre statt malloc new zu verwenden. new ruft auch den Konstruktor auf. Also statt:</p>
<pre><code class="language-cpp">m_pstrctSortHistorieDatenA      = (STRCT_SORTHISTORIEDATEN_Test*) malloc(m_strctNeueImpfdaten_Anzahl*sizeof(STRCT_SORTHISTORIEDATEN_Test));
</code></pre>
<p>einfach</p>
<pre><code class="language-cpp">m_pstrctSortHistorieDatenA = new STRCT_SORTHISTORIEDATEN_Test[m_strctNeueImpfdaten_Anzahl];
</code></pre>
<p>Der Code ist dann ein wenig weniger grausam. Aber bitte daran denken, mit <code>delete[] m_pstrctSortHistorieDatenA</code> wieder aufzuräumen.</p>
<p>Besser ist natürlich std::vector. Und ja, Du kannst Dich darauf verlassen, dass std::vector einfach verfügbar ist, wenn Du in C++ programmierst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250165</guid><dc:creator><![CDATA[ich bins]]></dc:creator><pubDate>Tue, 11 Sep 2012 08:12:59 GMT</pubDate></item><item><title><![CDATA[Reply to Allokier-Fehler on Tue, 11 Sep 2012 10:45:23 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>out schrieb:</p>
<blockquote>
<p>AnnaTX schrieb:</p>
<blockquote>
<pre><code class="language-cpp">malloc(m_strctNeueImpfdaten_Anzahl*sizeof(STRCT_SORTHISTORIEDATEN_Test)); // Allokiere 10 Arrays
</code></pre>
<p>Abgesehen davon, ist das in C++ undefined behaviour.</p>
</blockquote>
</blockquote>
<p>Das sehe ich jetzt so auf Anhieb nicht. Mag mich wer aufklaeren? Also abgesehen davon, dass der Konstruktor von CString nicht aufgerufen wird, was prinzipiell auch danach geschehen kann.</p>
</blockquote>
<p>Sorry, ich habe falsch zitiert. Ich meinte dieses Konstrukt:</p>
<pre><code class="language-cpp">m_pstrctSortHistorieDatenA = (STRCT_SORTHISTORIEDATEN_Test*) malloc(m_strctNeueImpfdaten_Anzahl*sizeof(STRCT_SORTHISTORIEDATEN_Test)); // Allokiere 10 Arrays
</code></pre>
<p><code>malloc</code> gibt ja <code>void*</code> zurück, und das darf man in C++ nicht einfach so Casten. Ich darf vielleicht einen anderen Zeiger-Typ auf den Speicherbereich setzen, aber spätestens bei einer Dereferenzierung könnte das Ganze schief gehen. (Falls ich falsch liege, korrigiert mich)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250229</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Tue, 11 Sep 2012 10:45:23 GMT</pubDate></item><item><title><![CDATA[Reply to Allokier-Fehler on Tue, 11 Sep 2012 13:05:33 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<p><code>malloc</code> gibt ja <code>void*</code> zurück, und das darf man in C++ nicht einfach so Casten. Ich darf vielleicht einen anderen Zeiger-Typ auf den Speicherbereich setzen, aber spätestens bei einer Dereferenzierung könnte das Ganze schief gehen. (Falls ich falsch liege, korrigiert mich)</p>
</blockquote>
<p>Ich korrigiere: Das ist durchaus definiert. Der Zeiger zeigt auf einen Speicherbereich, der groß genug ist, um eine Struktur vom Typ STRCT_SORTHISTORIEDATEN_Test zu konstruieren. Als nächstes könnte man ja den Konstruktor in-place aufrufen. Man darf nur nicht davon ausgehen, dass der Zeiger auf eine initialisierte Struktur zeigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250270</guid><dc:creator><![CDATA[ich bins]]></dc:creator><pubDate>Tue, 11 Sep 2012 13:05:33 GMT</pubDate></item><item><title><![CDATA[Reply to Allokier-Fehler on Tue, 11 Sep 2012 14:28:19 GMT]]></title><description><![CDATA[<p>AnnaTX schrieb:</p>
<blockquote>
<p>ich möchte meiner Klasse Speicher allokieren mit malloc.</p>
</blockquote>
<p>Warum? Du willst dir ja sicherlich auch nicht ins Knie tackern. Das tut nämlich weh und blutet dann sehr wahrscheinlich. Ähnlich masochistisch ist das dynamische Anlegen eines nicht-POD-Objekts per malloc. Es ist zwar im Rahmen des Möglichen, aber unnötig umständlich. Wenn du also keinen guten Grund hast: Lass die Finger von malloc für C++ Klassen.</p>
<p>AnnaTX schrieb:</p>
<blockquote>
<p>In der Klasse ist eine CString Variable.</p>
</blockquote>
<p>In Standard-C++ gibt's kein CString. In Standard-C++ gibt's aber zB. std::string. Ich tippe mal darauf, dass Du die CString-Klasse von Microsoft meinst. Gibt es einen guten Grund, warum du diese nutzen willst? So oder so sind das keine POD-Typen (POD = plain old data). Es sind Typen, deren Objekte speziell initialisiert und speziell de-initialisiert werden müssen. Und das leistet malloc gar nicht von alleine.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2250319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2250319</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 11 Sep 2012 14:28:19 GMT</pubDate></item></channel></rss>