<?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[struct und new]]></title><description><![CDATA[<p>Hi. Ich habe ein grosses Struct. Jetzt möchte ich davon 3 Variablen ableiten, aber das gibt eine böse EStackOverflow Meldung.</p>
<pre><code class="language-cpp">mystrct sr1[100];
mystrct sr2[100];
mystrct sr3[100];

sr1[2].data[56].value = 5;
</code></pre>
<p>Lösung ist wohl einzig mit new das Struct anzulegen, aber nun meckert er EAcessViolation wenn ich weiterhin so Daten auffüllen möchte.</p>
<pre><code class="language-cpp">sr1[2].data[56].value = 5;
</code></pre>
<p>Was mach ich denn falsch? *jammer*</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/222148/struct-und-new</link><generator>RSS for Node</generator><lastBuildDate>Mon, 05 Oct 2026 06:54:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/222148.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 08 Sep 2008 14:28:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to struct und new on Mon, 08 Sep 2008 14:28:40 GMT]]></title><description><![CDATA[<p>Hi. Ich habe ein grosses Struct. Jetzt möchte ich davon 3 Variablen ableiten, aber das gibt eine böse EStackOverflow Meldung.</p>
<pre><code class="language-cpp">mystrct sr1[100];
mystrct sr2[100];
mystrct sr3[100];

sr1[2].data[56].value = 5;
</code></pre>
<p>Lösung ist wohl einzig mit new das Struct anzulegen, aber nun meckert er EAcessViolation wenn ich weiterhin so Daten auffüllen möchte.</p>
<pre><code class="language-cpp">sr1[2].data[56].value = 5;
</code></pre>
<p>Was mach ich denn falsch? *jammer*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1578668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1578668</guid><dc:creator><![CDATA[~structer]]></dc:creator><pubDate>Mon, 08 Sep 2008 14:28:40 GMT</pubDate></item><item><title><![CDATA[Reply to struct und new on Mon, 08 Sep 2008 14:30:17 GMT]]></title><description><![CDATA[<p>Argh.. sollte Vorschau werden..</p>
<p>So leg ich das Struct mit <strong>new</strong> an</p>
<pre><code class="language-cpp">mystruct *sr1= new mystruct[100];
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1578669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1578669</guid><dc:creator><![CDATA[~tructer]]></dc:creator><pubDate>Mon, 08 Sep 2008 14:30:17 GMT</pubDate></item><item><title><![CDATA[Reply to struct und new on Mon, 08 Sep 2008 14:34:19 GMT]]></title><description><![CDATA[<p>Und weil Spamming gerade soviel Spass macht. *Scherz*<br />
Wie muss ich das sr1 wieder freigeben?</p>
<p>Mit</p>
<pre><code class="language-cpp">delete[] sr1;
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">delete sr1;
</code></pre>
<p>Ist ja ein Array,also wohl ersteres.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1578673</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1578673</guid><dc:creator><![CDATA[~structer]]></dc:creator><pubDate>Mon, 08 Sep 2008 14:34:19 GMT</pubDate></item><item><title><![CDATA[Reply to struct und new on Mon, 08 Sep 2008 14:39:57 GMT]]></title><description><![CDATA[<p>jop...</p>
<p>zeig mal die member von deinem struct<br />
weil eigendliuch sollte das so klappen</p>
<pre><code class="language-cpp">mystrct *s;
s = new mystrct[1000];
s[5].member[1].member2[25] = 123;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1578675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1578675</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 08 Sep 2008 14:39:57 GMT</pubDate></item><item><title><![CDATA[Reply to struct und new on Mon, 08 Sep 2008 14:50:13 GMT]]></title><description><![CDATA[<p>Das die normale funktionierende Variante, aber klappt nicht mit mehreren Structs, da EStackOverflow Meldung.</p>
<pre><code class="language-cpp">struct _matrix
{
    int index;
    int nummer;
// viele weitere int
};
typedef struct _xmatrix
{
    _matrix data[100];
}xmatrix;

xmatrix myMatrix[100];

ZeroMemory(&amp;myMatrix,sizeof(myMatrix));

myMatrix[3].data[2].nummer = 5;
</code></pre>
<p>Das die mit <strong>new</strong></p>
<pre><code class="language-cpp">struct _matrix
{
    int index;
    int nummer;
// viele weitere int
};
typedef struct _xmatrix
{
    _matrix data[100];
}xmatrix;

_xmatrix *myMatrix= new _xmatrix[100];
//xmatrix *myMatrix= new xmatrix[100]; // klappt auch nicht

ZeroMemory(&amp;myMatrix,sizeof(myMatrix));

myMatrix[3].data[2].nummer = 5; //ERROR EAccessViolation

delete[] myMatrix;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1578679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1578679</guid><dc:creator><![CDATA[~structer]]></dc:creator><pubDate>Mon, 08 Sep 2008 14:50:13 GMT</pubDate></item><item><title><![CDATA[Reply to struct und new on Mon, 08 Sep 2008 14:54:23 GMT]]></title><description><![CDATA[<p>ZeroMemory(&amp;myMatrix,sizeof(myMatrix));</p>
<p>=&gt;</p>
<p>ZeroMemory(&amp;myMatrix,sizeof(_xmatrix));</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1578681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1578681</guid><dc:creator><![CDATA[booya]]></dc:creator><pubDate>Mon, 08 Sep 2008 14:54:23 GMT</pubDate></item><item><title><![CDATA[Reply to struct und new on Mon, 08 Sep 2008 14:57:58 GMT]]></title><description><![CDATA[<p>Dann erhalte ich &quot;Zugriffsverletzung bei 0x00000000: lesen von Adresse 0x00000000&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1578683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1578683</guid><dc:creator><![CDATA[~structer]]></dc:creator><pubDate>Mon, 08 Sep 2008 14:57:58 GMT</pubDate></item><item><title><![CDATA[Reply to struct und new on Mon, 08 Sep 2008 15:02:08 GMT]]></title><description><![CDATA[<p>Es scheint das wirklich ZeroMemory() an der EAccessViolation schuld ist. Der Fehler springt zwar zu der Variableübergabe, aber wenn ich ZeroMemory auskommentiere erhalte ich keine Fehlermeldung mehr im Programm.</p>
<p>Mit ZeroMemory fülle ich das &quot;struct&quot; mit 0. Geht das nicht mehr mit new? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f611.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--expressionless_face"
      title="-_-"
      alt="😑"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1578685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1578685</guid><dc:creator><![CDATA[~structer]]></dc:creator><pubDate>Mon, 08 Sep 2008 15:02:08 GMT</pubDate></item><item><title><![CDATA[Reply to struct und new on Mon, 08 Sep 2008 15:09:06 GMT]]></title><description><![CDATA[<p>Klar geht das:<br />
ZeroMemory( &amp;myMatrix[0], sizeof(_xmatrix[100]) );<br />
oder<br />
ZeroMemory( myMatrix, sizeof(_xmatrix[100]) );</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1578689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1578689</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Mon, 08 Sep 2008 15:09:06 GMT</pubDate></item><item><title><![CDATA[Reply to struct und new on Mon, 08 Sep 2008 15:20:35 GMT]]></title><description><![CDATA[<p>Danke für die tolle Hilfe!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Das hat ich auch probiert</p>
<p>Badestrand schrieb:</p>
<blockquote>
<p>ZeroMemory( &amp;myMatrix[0], sizeof(_xmatrix[100]) );</p>
</blockquote>
<p>richtig ist aber tatsächlich dies</p>
<p>Badestrand schrieb:</p>
<blockquote>
<p>ZeroMemory( myMatrix, sizeof(_xmatrix[100]) );</p>
</blockquote>
<p>Ist das jetzt wegen dem <strong>new</strong> so?<br />
Wenn ich es direkt vom struct nehme kann ich das doch so nutzen wie bisher, oder? Es gibt damit jedenfalls keine Probleme.</p>
<pre><code class="language-cpp">struct _matrix
{
    int index;
    int nummer;
// viele weitere int
};
typedef struct _xmatrix
{
    _matrix data[100];
}xmatrix;

xmatrix myMatrix[100];

ZeroMemory(&amp;myMatrix,sizeof(myMatrix)); // &lt;&lt; ??
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1578704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1578704</guid><dc:creator><![CDATA[~structer]]></dc:creator><pubDate>Mon, 08 Sep 2008 15:20:35 GMT</pubDate></item><item><title><![CDATA[Reply to struct und new on Mon, 08 Sep 2008 15:30:18 GMT]]></title><description><![CDATA[<p>Gib deiner struct _matrix doch einen Konstruktor der die Elemente mit 0 initialisiert, und du kannst auf ZeroMemory verzichten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1578713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1578713</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 08 Sep 2008 15:30:18 GMT</pubDate></item><item><title><![CDATA[Reply to struct und new on Mon, 08 Sep 2008 15:32:09 GMT]]></title><description><![CDATA[<p>Ein Array ist kein Zeiger und umgekehrt ist ein Zeiger auch kein Array.<br />
Natürlich ändert sich der Sinn von</p>
<pre><code class="language-cpp">ZeroMemory(&amp;myMatrix,sizeof(myMatrix));
</code></pre>
<p>je nachdem, ob myMatrix ein Array oder ein Zeiger ist.</p>
<p>Keine dieser Varianten ist im Übrigen besonders elegant. Besser:</p>
<pre><code>xmatrix* pmyMatrix= new xmatrix[100][b]()[/b]; // die Klammern bewirken den Aufruf des Defaultkonstruktors, auch wenn xmatrix ein POD ist
xmatrix myMatrix[100] = {}; // wenn C-Komaptibilität wichtig ist:  xmatrix myMatrix[100] = {0};
</code></pre>
<p>Überhaupt sind Funktionen wie ZeroMemory fast immer überflüssig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1578714</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1578714</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 08 Sep 2008 15:32:09 GMT</pubDate></item><item><title><![CDATA[Reply to struct und new on Mon, 08 Sep 2008 17:21:42 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>wenn C-Komaptibilität wichtig ist</p>
</blockquote>
<p>Dann wäre <code>new</code> hier aber auch fehl am Platz.</p>
<p>Abgesehen davon, dass <code>ZeroMemory()</code> nicht Standard-C++ ist, gibt es wie gesagt die Möglichkeit, in einem Defaultkonstruktor alle Member mit 0 zu initialisieren. Will man dann z.B. später ein Member mit einem anderen Wert initialisieren, reicht es, einen Eintrag zu ändern.</p>
<p>Unter der Voraussetzung, dass das Ganze C++ sein soll (wir sind hier im C++-Forum), brauchst du auch <code>typedef struct</code> nicht, ein einfaches <code>struct</code> reicht. Man kann so bei der Deklaration das Schlüsselwort <code>struct</code> weglassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1578772</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1578772</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 08 Sep 2008 17:21:42 GMT</pubDate></item></channel></rss>