<?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[Array von struct]]></title><description><![CDATA[<p>Hallo NG,</p>
<p>ich habe eine (eigentlich) triviale Frage. Ich habe folgendes struct:</p>
<pre><code class="language-cpp">#define SIZEOFSTRUCT 100

typedef struct{
  int bla;
} MYSTRUCT;
</code></pre>
<p>Davon brauche ich nun x Stück. Ich lege mir ein Array mit</p>
<pre><code class="language-cpp">MYSTRUCT *pMyStruct = new MYSTRUCT[SIZEOFSTRUCT];
</code></pre>
<p>an. Ich bin nun der Meinung pMyStruct ist ein Array von Pointern, wehalb ich nun jedem Pointer ein MYSTRUCT zuweisen muss. Dazu würde ich</p>
<pre><code class="language-cpp">for(unsigned int index = 0; index &lt; SIZEOFSTRUCT; index++){
  pMyStruct[index] = new MYSTRUCT;
}
</code></pre>
<p>schreiben. Aber der Compiler mag das nicht, er meint:<br />
<em><em>error: no match for ‘operator=’ in ‘<em>(((MYSTRUCT</em>)(((unsigned int)index) * 15376u)) + pMyStruct) = (MYSTRUCT</em>)operator new(15376u)’</em>*</p>
<p>Wie weise ich nun jedem Pointer im Array pMyStruct ein struct zu?</p>
<p>Danke für jede Hilfe,<br />
M. Incani</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/173810/array-von-struct</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 10:31:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/173810.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 20 Feb 2007 08:27:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array von struct on Tue, 20 Feb 2007 08:27:16 GMT]]></title><description><![CDATA[<p>Hallo NG,</p>
<p>ich habe eine (eigentlich) triviale Frage. Ich habe folgendes struct:</p>
<pre><code class="language-cpp">#define SIZEOFSTRUCT 100

typedef struct{
  int bla;
} MYSTRUCT;
</code></pre>
<p>Davon brauche ich nun x Stück. Ich lege mir ein Array mit</p>
<pre><code class="language-cpp">MYSTRUCT *pMyStruct = new MYSTRUCT[SIZEOFSTRUCT];
</code></pre>
<p>an. Ich bin nun der Meinung pMyStruct ist ein Array von Pointern, wehalb ich nun jedem Pointer ein MYSTRUCT zuweisen muss. Dazu würde ich</p>
<pre><code class="language-cpp">for(unsigned int index = 0; index &lt; SIZEOFSTRUCT; index++){
  pMyStruct[index] = new MYSTRUCT;
}
</code></pre>
<p>schreiben. Aber der Compiler mag das nicht, er meint:<br />
<em><em>error: no match for ‘operator=’ in ‘<em>(((MYSTRUCT</em>)(((unsigned int)index) * 15376u)) + pMyStruct) = (MYSTRUCT</em>)operator new(15376u)’</em>*</p>
<p>Wie weise ich nun jedem Pointer im Array pMyStruct ein struct zu?</p>
<p>Danke für jede Hilfe,<br />
M. Incani</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231678</guid><dc:creator><![CDATA[BlackPepper]]></dc:creator><pubDate>Tue, 20 Feb 2007 08:27:16 GMT</pubDate></item><item><title><![CDATA[Reply to Array von struct on Tue, 20 Feb 2007 08:33:37 GMT]]></title><description><![CDATA[<p>BlackPepper schrieb:</p>
<blockquote>
<p>Ich bin nun der Meinung pMyStruct ist ein Array von Pointern, wehalb ich nun jedem Pointer ein MYSTRUCT zuweisen muss.</p>
</blockquote>
<p>Falsch: pMyStruct ist ein Zeiger auf ein Array von (leer initialisierten) Structs, d.h. du hast dort schon n fertige Objekte liegen, die du nur noch füllen mußt:</p>
<pre><code class="language-cpp">for(unsigned int index = 0; index &lt; SIZEOFSTRUCT; index++){
  pMyStruct[index].bla = 4711 + index;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1231682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231682</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 20 Feb 2007 08:33:37 GMT</pubDate></item><item><title><![CDATA[Reply to Array von struct on Tue, 20 Feb 2007 08:54:22 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Falsch: pMyStruct ist ein Zeiger auf ein Array von (leer initialisierten) Structs, d.h. du hast dort schon n fertige Objekte liegen, die du nur noch füllen mußt:</p>
<pre><code class="language-cpp">for(unsigned int index = 0; index &lt; SIZEOFSTRUCT; index++){
  pMyStruct[index].bla = 4711 + index;
}
</code></pre>
</blockquote>
<p>Wenn ich aber beginne pMyStruct[index] zu füllen, überschreibe ich mir irgendwann anderswo Daten. Wenn ich pMyStruct[index] nicht fülle, passiert das nicht. Deshalb bin ich auf die Idee gekommen,</p>
<pre><code class="language-cpp">MYSTRUCT *pMyStruct = new MYSTRUCT[SIZEOFSTRUCT]
</code></pre>
<p>wären nur Zeiger. Ich muss jetzt mal dazu sagen, das in MYSTRUCT wieder ein array eines union ist, also eigentlich so aussieht.</p>
<pre><code class="language-cpp">#define SIZEOFSTRUCT 100
#define SIZEOFSOMETHING 100

typedef struct{
  int value1;
} THING1;

typedef struct{
  int value2;
} THING2;

typedef union
{
  THING1 a;
  THING2 b;
}SOMETHING;

typedef struct{
  int bla;
  pSomething SOMETHING[SIZEOFSOMETHING];
} MYSTRUCT;
</code></pre>
<p>Sorry, wenn ich das nicht gleich gesagt habe, aber ich versuche meißt die Dinge immer etwas einfacher darzstellen. Müssen in pSometing ebenfalls die structs mit new initialisiert werden?</p>
<p>Gruß<br />
M. Incani</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231698</guid><dc:creator><![CDATA[BlackPepper]]></dc:creator><pubDate>Tue, 20 Feb 2007 08:54:22 GMT</pubDate></item><item><title><![CDATA[Reply to Array von struct on Tue, 20 Feb 2007 09:10:29 GMT]]></title><description><![CDATA[<p>BlackPepper schrieb:</p>
<blockquote>
<p>CStoll schrieb:</p>
<blockquote>
<p>Falsch: pMyStruct ist ein Zeiger auf ein Array von (leer initialisierten) Structs, d.h. du hast dort schon n fertige Objekte liegen, die du nur noch füllen mußt:</p>
<pre><code class="language-cpp">for(unsigned int index = 0; index &lt; SIZEOFSTRUCT; index++){
  pMyStruct[index].bla = 4711 + index;
}
</code></pre>
</blockquote>
<p>Wenn ich aber beginne pMyStruct[index] zu füllen, überschreibe ich mir irgendwann anderswo Daten. Wenn ich pMyStruct[index] nicht fülle, passiert das nicht.</p>
</blockquote>
<p>Wie bitte? Natürlich überschreibst du deine Daten, wenn du pMyStruct[Index] füllst. Und wenn du dabei über das Ziel hinausschießt, kannst du auch fremde Daten zerlegen.</p>
<blockquote>
<p>Ich muss jetzt mal dazu sagen, das in MYSTRUCT wieder ein array eines union ist, also eigentlich so aussieht.</p>
<pre><code class="language-cpp">#define SIZEOFSTRUCT 100
#define SIZEOFSOMETHING 100

typedef struct{
  int value1;
} THING1;

typedef struct{
  int value2;
} THING2;

typedef union
{
  THING1 a;
  THING2 b;
}SOMETHING;

typedef struct{
  int bla;
  pSomething SOMETHING[SIZEOFSOMETHING];
} MYSTRUCT;
</code></pre>
</blockquote>
<p>Bist du sicher, daß das der korrekte Code ist (pSomething ist nirgends definiert und der Name SOMETHING wird doppelt verwendet)?</p>
<blockquote>
<p>Sorry, wenn ich das nicht gleich gesagt habe, aber ich versuche meißt die Dinge immer etwas einfacher darzstellen. Müssen in pSometing ebenfalls die structs mit new initialisiert werden?</p>
</blockquote>
<p>Ja, das struct-Element ist ein Array von Zeigern - aber das ist ja auch eine andere Konstruktion als oben. Und diese Zeiger mußt du jeweils einzeln initialisieren (ob du per new Speicher anforderst oder die Adresse eines vorhandenen Objekts holst, ist dann egal).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231717</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 20 Feb 2007 09:10:29 GMT</pubDate></item><item><title><![CDATA[Reply to Array von struct on Tue, 20 Feb 2007 09:26:21 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Bist du sicher, daß das der korrekte Code ist (pSomething ist nirgends definiert und der Name SOMETHING wird doppelt verwendet)?</p>
<blockquote>
<p>Sorry, wenn ich das nicht gleich gesagt habe, aber ich versuche meißt die Dinge immer etwas einfacher darzstellen. Müssen in pSometing ebenfalls die structs mit new initialisiert werden?</p>
</blockquote>
<p>Ja, das struct-Element ist ein Array von Zeigern - aber das ist ja auch eine andere Konstruktion als oben. Und diese Zeiger mußt du jeweils einzeln initialisieren (ob du per new Speicher anforderst oder die Adresse eines vorhandenen Objekts holst, ist dann egal).</p>
</blockquote>
<p>Es soll innerhalb MYSTRUCT natürlich</p>
<pre><code class="language-cpp">typedef struct{
  int bla;
  SOMETHING pSomething[SIZEOFSOMETHING];
} MYSTRUCT;
</code></pre>
<p>heißen. Das ist ein Abschreibfehler gewesen. Mir misslingt aber zur Zeit das initialisieren der Zeiger.</p>
<pre><code class="language-cpp">pMyStruct[index].pSomething = new SOMETHING[SIZEOFSOMETHING];
</code></pre>
<p>quittiert der Compiler mit der genannten Fehlermeldung. Und ich finde gerade keinen Hinweis darauf, wie ich das richtig mache.<br />
Auch</p>
<pre><code class="language-cpp">pMyStruct[index].pSomething[0] = new SOMETHING;
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">pMyStruct[index].pSomething[0] = new THING1;
</code></pre>
<p>schlägt fehl.</p>
<p>Gruß,<br />
M. Incani</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231727</guid><dc:creator><![CDATA[BlackPepper]]></dc:creator><pubDate>Tue, 20 Feb 2007 09:26:21 GMT</pubDate></item><item><title><![CDATA[Reply to Array von struct on Tue, 20 Feb 2007 09:35:16 GMT]]></title><description><![CDATA[<p>BlackPepper schrieb:</p>
<blockquote>
<p>CStoll schrieb:</p>
<blockquote>
<p>Bist du sicher, daß das der korrekte Code ist (pSomething ist nirgends definiert und der Name SOMETHING wird doppelt verwendet)?</p>
<blockquote>
<p>Sorry, wenn ich das nicht gleich gesagt habe, aber ich versuche meißt die Dinge immer etwas einfacher darzstellen. Müssen in pSometing ebenfalls die structs mit new initialisiert werden?</p>
</blockquote>
<p>Ja, das struct-Element ist ein Array von Zeigern - aber das ist ja auch eine andere Konstruktion als oben. Und diese Zeiger mußt du jeweils einzeln initialisieren (ob du per new Speicher anforderst oder die Adresse eines vorhandenen Objekts holst, ist dann egal).</p>
</blockquote>
<p>Es soll innerhalb MYSTRUCT natürlich</p>
<pre><code class="language-cpp">typedef struct{
  int bla;
  SOMETHING pSomething[SIZEOFSOMETHING];
} MYSTRUCT;
</code></pre>
<p>heißen. Das ist ein Abschreibfehler gewesen. Mir misslingt aber zur Zeit das initialisieren der Zeiger.</p>
</blockquote>
<p>Achso, na dann ist das auch kein Zeiger und du brauchst auch kein new. An der Stelle hast du ein ganz normales Array, auf dessen Elemente du über <code>pMyStruct[index].pSomething[subindex].a</code> zugreifen kannst (dabei mußt du nur aufpassen, daß du die Indexgrenzen nicht überschreitest - wenn subindex&gt;=SIZEOFSOMETHING wird, schreibst du über das Ende deines Arrays hinaus (und dort liegt vermutlich der 'int bla;' vom nächsten MYSTRUCT-Objekt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231736</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 20 Feb 2007 09:35:16 GMT</pubDate></item><item><title><![CDATA[Reply to Array von struct on Tue, 20 Feb 2007 10:42:26 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Achso, na dann ist das auch kein Zeiger und du brauchst auch kein new. An der Stelle hast du ein ganz normales Array, auf dessen Elemente du über <code>pMyStruct[index].pSomething[subindex].a</code> zugreifen kannst (dabei mußt du nur aufpassen, daß du die Indexgrenzen nicht überschreitest - wenn subindex&gt;=SIZEOFSOMETHING wird, schreibst du über das Ende deines Arrays hinaus (und dort liegt vermutlich der 'int bla;' vom nächsten MYSTRUCT-Objekt).</p>
</blockquote>
<p>Nur das wir vom selben reden:</p>
<pre><code class="language-cpp">MYSTRUCT *pMyStruct = new MYSTRUCT[SIZEOFSTRUCT];
</code></pre>
<p>erzeugt ein Array von MYSTRUCT in dem ein Array vom SOMETHING ist. In pSomething [subindex] ist wiederum THING1 bwz THING2. Wenn ich die Indexgrenze garantiert nicht überschreibe, warum überschreibe ich mir dann immer wieder Daten an einer anderen Stelle? Das passiert wie bereits gesagt, nur dann, wenn ich in pMyStruct schreibe.</p>
<p>Gruß,<br />
M. Incani</p>
<p>PS. Bin nun Mittag essen und gegen 12:30h wieder hier.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231785</guid><dc:creator><![CDATA[BlackPepper]]></dc:creator><pubDate>Tue, 20 Feb 2007 10:42:26 GMT</pubDate></item><item><title><![CDATA[Reply to Array von struct on Tue, 20 Feb 2007 10:47:05 GMT]]></title><description><![CDATA[<p>BlackPepper schrieb:</p>
<blockquote>
<p>Nur das wir vom selben reden:</p>
<pre><code class="language-cpp">MYSTRUCT *pMyStruct = new MYSTRUCT[SIZEOFSTRUCT];
</code></pre>
<p>erzeugt ein Array von MYSTRUCT in dem ein Array vom SOMETHING ist. In pSomething [subindex] ist wiederum THING1 bwz THING2.</p>
</blockquote>
<p>Ja, soweit ist das richtig.</p>
<blockquote>
<p>Wenn ich die Indexgrenze garantiert nicht überschreibe, warum überschreibe ich mir dann immer wieder Daten an einer anderen Stelle? Das passiert wie bereits gesagt, nur dann, wenn ich in pMyStruct schreibe.</p>
</blockquote>
<p>Eigentlich solltest du damit auch nichts außerhalb deines Arrays überschreiben (es sei denn, du hast von irgendwo anders einen Zeiger/Referenz, der ins Array zielt - dessen Daten werden durch so einen Zugriff auch beeinflußt). Also zeig mal bitte etwas mehr zusammenhängenden Code, damit wir den Fehler nachvollziehen können (wo ist diese &quot;andere Stelle&quot;? Hast du pMyStruct versehentlich verbogen? ...?).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231787</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231787</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 20 Feb 2007 10:47:05 GMT</pubDate></item><item><title><![CDATA[Reply to Array von struct on Tue, 20 Feb 2007 10:50:02 GMT]]></title><description><![CDATA[<p>wieso laesst du es net einfach mit dem pointer wenn der compiler meckert und machst es gleich so</p>
<pre><code>MYSTRUCT aMystruct[ SIZEOFSTRUCT ];
</code></pre>
<p>so haste doch auch nen container von deiner struct oder?</p>
<p>Gruß Tobi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231791</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Tue, 20 Feb 2007 10:50:02 GMT</pubDate></item><item><title><![CDATA[Reply to Array von struct on Tue, 20 Feb 2007 11:13:08 GMT]]></title><description><![CDATA[<p>T0bi schrieb:</p>
<blockquote>
<p>wieso laesst du es net einfach mit dem pointer wenn der compiler meckert und machst es gleich so</p>
<pre><code>MYSTRUCT aMystruct[ SIZEOFSTRUCT ];
</code></pre>
<p>so haste doch auch nen container von deiner struct oder?</p>
<p>Gruß Tobi</p>
</blockquote>
<p>Hatte ich anfangs auch, aber dann traten diese seltsamen Fehler auf und ich dachte mir geht der Stack aus (Stacksize bei Linux = 8MB). Dann habe ich das Array auf den Heap angelegt, aber ich hab immer noch das gleiche Problem.</p>
<p>Gruß,<br />
M.Incani</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231811</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231811</guid><dc:creator><![CDATA[BlackPepper]]></dc:creator><pubDate>Tue, 20 Feb 2007 11:13:08 GMT</pubDate></item><item><title><![CDATA[Reply to Array von struct on Tue, 20 Feb 2007 11:20:28 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Ja, soweit ist das richtig.</p>
<blockquote>
<p>Wenn ich die Indexgrenze garantiert nicht überschreibe, warum überschreibe ich mir dann immer wieder Daten an einer anderen Stelle? Das passiert wie bereits gesagt, nur dann, wenn ich in pMyStruct schreibe.</p>
</blockquote>
<p>Eigentlich solltest du damit auch nichts außerhalb deines Arrays überschreiben (es sei denn, du hast von irgendwo anders einen Zeiger/Referenz, der ins Array zielt - dessen Daten werden durch so einen Zugriff auch beeinflußt). Also zeig mal bitte etwas mehr zusammenhängenden Code, damit wir den Fehler nachvollziehen können (wo ist diese &quot;andere Stelle&quot;? Hast du pMyStruct versehentlich verbogen? ...?).</p>
</blockquote>
<p>Nein, ich habe nur eine Referenz auf das Array (pMyStruct) und das sogar innerhalb einer einzigen Funktion. An dessen Ende steht auch delete. Mal überschreibe ich andere Container, mal Programmcode, mal ... ach was weiß ich...</p>
<p>Das Programm bleibt mit Segmentaion fault hängen. Und der Debugger zeigt immer eine andere Stelle, abhängig davon was ich compiliere. Deshalb tippe ich auf Buffer overflow und weiß nicht wie ich ihn finde.</p>
<p>Gruß<br />
M. Incani</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231817</guid><dc:creator><![CDATA[BlackPepper]]></dc:creator><pubDate>Tue, 20 Feb 2007 11:20:28 GMT</pubDate></item><item><title><![CDATA[Reply to Array von struct on Tue, 20 Feb 2007 11:23:00 GMT]]></title><description><![CDATA[<p>Na dann zeig doch mal etwas mehr Code, damit sich andere ein Bild von der situation machen können (von hier aus sehen wir nur die Fragmente, die du bisher gezeigt hast - und daraus könnte nur ein Hellseher rekonstuieren, wie das komplette Programm aussehen könnte).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231819</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231819</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 20 Feb 2007 11:23:00 GMT</pubDate></item><item><title><![CDATA[Reply to Array von struct on Tue, 20 Feb 2007 11:55:45 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Na dann zeig doch mal etwas mehr Code, damit sich andere ein Bild von der situation machen können (von hier aus sehen wir nur die Fragmente, die du bisher gezeigt hast - und daraus könnte nur ein Hellseher rekonstuieren, wie das komplette Programm aussehen könnte).</p>
</blockquote>
<pre><code class="language-cpp">void Observer::writeDataInContainer(){

  MYSTRUCT *pMyStruct = new MYSTRUCT[SIZEOFSTRUCT];

  for (unsigned int index = 0; index &lt; SIZEOFSTRUCT; index++){
    for (unsigend int subIndex = 0; subIndex &lt; SIZEOFSOMETHING; subIndex++){
      pMyStruct[index].bla = index;
      pMyStruct[index].pSomething[subIndex].a.value1 = index + 1;
      pMyStruct[index].pSomething[subIndex].b.value2 = index + 2;
    }
  }
  // ...
  // ...
  // ...
  delete [] pMyStruct;
}
</code></pre>
<p>So wird das Array beschrieben. Wie gesagt, tritt die Segmentaion fault dann irgendwo anders im Programm auf. Wenn ich das Array nicht beschreibe, also die Schleife auskommentiere, hab ich keine Probleme.</p>
<p>Gruß,<br />
M. Incani</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231856</guid><dc:creator><![CDATA[BlackPepper]]></dc:creator><pubDate>Tue, 20 Feb 2007 11:55:45 GMT</pubDate></item><item><title><![CDATA[Reply to Array von struct on Tue, 20 Feb 2007 12:06:07 GMT]]></title><description><![CDATA[<p>Erstens ist SOMETHING ein union, also kannst du nur eins der enthaltenen Objekte zur selben Zeit nutzen (die beiden Teile liegen im selben Speicherbereich).</p>
<p>Zweitens sehe ich an deinem Code keinen technischen Fehler (praktisch verbessern könntest du ihn, indem du die nackten Zeiger durch std::vector ersetzt). Also solltest du mal nachschauen, ob nicht &quot;irgendwo anders&quot; über die Grenzen eines Arrays hinausgeschrieben wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231867</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 20 Feb 2007 12:06:07 GMT</pubDate></item><item><title><![CDATA[Reply to Array von struct on Tue, 20 Feb 2007 12:22:23 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Erstens ist SOMETHING ein union, also kannst du nur eins der enthaltenen Objekte zur selben Zeit nutzen (die beiden Teile liegen im selben Speicherbereich).</p>
<p>Zweitens sehe ich an deinem Code keinen technischen Fehler (praktisch verbessern könntest du ihn, indem du die nackten Zeiger durch std::vector ersetzt). Also solltest du mal nachschauen, ob nicht &quot;irgendwo anders&quot; über die Grenzen eines Arrays hinausgeschrieben wurde.</p>
</blockquote>
<p>Na gut, aber wie finde ich dann einen Buffer Overflow? Fall es einer ist. Welches Tool hilft mir? Oder wie kann mir der gdb den entsprechenden Hinweis geben?</p>
<p>Weil wenn das Array nicht beschrieben wird, klappt alles.</p>
<p>Gruß,<br />
M. Incani</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231881</guid><dc:creator><![CDATA[BlackPepper]]></dc:creator><pubDate>Tue, 20 Feb 2007 12:22:23 GMT</pubDate></item></channel></rss>