<?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[ZeroMemory und CStrings = Game over ???]]></title><description><![CDATA[<p>Aloha,</p>
<p>warum funzt folgender Quellcode net ?</p>
<p>Was macht ZeroMemory im Hintergrund, was ich net begreife ?</p>
<pre><code>CString test = &quot;Hilfe&quot;;
ZeroMemory(&amp;test,sizeof(CString));
test = &quot;123&quot;;  &lt;--- GAME OVER
</code></pre>
<p>Grüße</p>
<p>BOA</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/74506/zeromemory-und-cstrings-game-over</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 12:36:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/74506.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 21 May 2004 12:43:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ZeroMemory und CStrings = Game over ??? on Fri, 21 May 2004 12:43:35 GMT]]></title><description><![CDATA[<p>Aloha,</p>
<p>warum funzt folgender Quellcode net ?</p>
<p>Was macht ZeroMemory im Hintergrund, was ich net begreife ?</p>
<pre><code>CString test = &quot;Hilfe&quot;;
ZeroMemory(&amp;test,sizeof(CString));
test = &quot;123&quot;;  &lt;--- GAME OVER
</code></pre>
<p>Grüße</p>
<p>BOA</p>
]]></description><link>https://www.c-plusplus.net/forum/post/524584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/524584</guid><dc:creator><![CDATA[BOA]]></dc:creator><pubDate>Fri, 21 May 2004 12:43:35 GMT</pubDate></item><item><title><![CDATA[Reply to ZeroMemory und CStrings = Game over ??? on Fri, 21 May 2004 12:59:30 GMT]]></title><description><![CDATA[<p>Servus,</p>
<p>vorab, es ist nur eine Vermutung. Erlaubnis zum Schlagen bei gegebenen Fehler ist erteilt!!!</p>
<p>Mit CString test legst du ja eine neue Variable an und gibst ihm auch eine Speicheradresse. Wenn du aber nun ZeroMemory aufrufst, zeigt danach der Zeiger von test ins leere -&gt; Und fott isser....</p>
<p>Frage Allgemein:<br />
Macht eigentlich &quot;delete&quot; nicht dasselbe?</p>
<p>*winke*<br />
Hellsgore</p>
<p>EDIT:<br />
Warum willste das überhaupt machen???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/524593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/524593</guid><dc:creator><![CDATA[Hellsgore]]></dc:creator><pubDate>Fri, 21 May 2004 12:59:30 GMT</pubDate></item><item><title><![CDATA[Reply to ZeroMemory und CStrings = Game over ??? on Fri, 21 May 2004 13:00:29 GMT]]></title><description><![CDATA[<p>ZeroMemory() setzt den ganzen speicher den du der funktion gibst auf 0.<br />
das mit structs zu machen is eine sache.<br />
aber mit klassen is das nicht zu empfehlen.<br />
ich denke mal dass du damit innerhalb von deiner CString instanz irgendeinen zeiger = 0 setzt und das natürlich früher oder später zu einem fehler führt.</p>
<p>auch kann es passiern, dass du bei klassen, die von einer anderen klasse abgeleitet sind und virtuelle funktionen usw. besitzen die zeiger in der _vtable auf null setzt ( is mir in meiner anfagszeit mal passiert ). recht unangenehm und wenn man noch nicht viel ahnung davon hat recht lustig zu debuggen <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="😉"
    /><br />
aber ich hab den fehler ja dann doch gefunden...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/524595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/524595</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Fri, 21 May 2004 13:00:29 GMT</pubDate></item><item><title><![CDATA[Reply to ZeroMemory und CStrings = Game over ??? on Fri, 21 May 2004 13:08:19 GMT]]></title><description><![CDATA[<p>ZeroMemory = memcpy nur das der 2 Parameter von memcpy = 0 ist.</p>
<p>Wenn du den CString leeren willst dann nimm die Memberfunktionen dafür.</p>
<p>z.B. Empty()</p>
]]></description><link>https://www.c-plusplus.net/forum/post/524609</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/524609</guid><dc:creator><![CDATA[Unix-Tom]]></dc:creator><pubDate>Fri, 21 May 2004 13:08:19 GMT</pubDate></item><item><title><![CDATA[Reply to ZeroMemory und CStrings = Game over ??? on Fri, 21 May 2004 13:09:51 GMT]]></title><description><![CDATA[<p>fast gleichzeitig <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>Hellsgore schrieb:</p>
<blockquote>
<p>Frage Allgemein:<br />
Macht eigentlich &quot;delete&quot; nicht dasselbe?</p>
</blockquote>
<p>nein, delete gibt speicher frei ( die C++ version von free() ), ZeroMemory() setzt ihn nur auf 0.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/524612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/524612</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Fri, 21 May 2004 13:09:51 GMT</pubDate></item><item><title><![CDATA[Reply to ZeroMemory und CStrings = Game over ??? on Fri, 21 May 2004 13:15:34 GMT]]></title><description><![CDATA[<p>Servus,</p>
<p>dot schrieb:</p>
<blockquote>
<p>nein, delete gibt speicher frei ( die C++ version von free() ), ZeroMemory() setzt ihn nur auf 0.</p>
</blockquote>
<p>Schankedön.... Man lernt nie aus <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>Hellsgore</p>
]]></description><link>https://www.c-plusplus.net/forum/post/524624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/524624</guid><dc:creator><![CDATA[Hellsgore]]></dc:creator><pubDate>Fri, 21 May 2004 13:15:34 GMT</pubDate></item><item><title><![CDATA[Reply to ZeroMemory und CStrings = Game over ??? on Fri, 21 May 2004 14:19:26 GMT]]></title><description><![CDATA[<p>Aloha,</p>
<p>vielen Dank für die zahlreichen Antworten.</p>
<p>Empty() is mir wohl bekannt gewesen, mein Prob war, daß ich in einer Struktur eine CString - Variable hatte, und die ganze Struktur nullen wollte auf einen Schlag.</p>
<pre><code>struct verbraucher{

CString name;
int zyklus;
CTime termin;
BOOL kill;

};
</code></pre>
<p>Die Struktur sieht ja nach dem ZeroMemory auch spitze aus.</p>
<pre><code>ZeroMemory(&amp;t_verbraucher,sizeof(verbraucher));
</code></pre>
<p>t_verbraucher.name = &quot;&quot;;</p>
<p>zeigt mir der Debugger an.</p>
<p>Wenn die Struktur am Ende der Funktion allerdings gelöscht wird, meckert der Compiler.</p>
<p>So richtig begreife ich immer noch nicht, warum er meckert. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<p>Naja, nun nulle ich per Hand jede einzelne Variable, sodaß ich Empty() benutzen kann.</p>
<p>Grüße und Danke</p>
<p>BOA</p>
]]></description><link>https://www.c-plusplus.net/forum/post/524692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/524692</guid><dc:creator><![CDATA[BOA]]></dc:creator><pubDate>Fri, 21 May 2004 14:19:26 GMT</pubDate></item><item><title><![CDATA[Reply to ZeroMemory und CStrings = Game over ??? on Fri, 21 May 2004 16:22:26 GMT]]></title><description><![CDATA[<p>Wie ja schon erwähnt wurde, ist es nie eine gute Idee eine Klasse mit ZeroMemory/memset.. zu initialisieren. Dafür ist ja der Konstruktor da. Die Klasse hat ja auch immer, wie eine Struktur, einen Datenbereich im Speicher. In deinem Beispiel erstellst du ein Objekt vom Typ CString. Dieses enthält &quot;nur&quot; einen Zeiger auf den vom CString Objekt verwalteten Text. Dieser wird standardmäßig vom Konstruktor initialisiert. Es wird also (beim Standardkonstruktur) Speicher für einen Leerstring reserviert, auf den der Zeiger des CString Objektes verweist. Sobald das CString Objekt versucht, den alten Text freizugeben (z.B. wenn ein neuer gespeichert werden soll oder das CString Objekt durch den Destruktor zerstört werden soll), stürzt ein Program ab, weil der Zeiger des CStrings auf 0x00000000 verweist und versucht diese freizugeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/524777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/524777</guid><dc:creator><![CDATA[GeorgeHomes]]></dc:creator><pubDate>Fri, 21 May 2004 16:22:26 GMT</pubDate></item><item><title><![CDATA[Reply to ZeroMemory und CStrings = Game over ??? on Fri, 21 May 2004 16:35:03 GMT]]></title><description><![CDATA[<p>Aloha,</p>
<p>@homes<br />
aller klar, das klingt einleuchtend.</p>
<p>Danke für die Erklärung.</p>
<p>Grüße</p>
<p>BOA</p>
]]></description><link>https://www.c-plusplus.net/forum/post/524785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/524785</guid><dc:creator><![CDATA[BOA]]></dc:creator><pubDate>Fri, 21 May 2004 16:35:03 GMT</pubDate></item></channel></rss>