Anzahl Elemente einer Structur ermitteln?

Moyn,

ich möchte die Anzahl der Elemente einer Structur (Struct) ermitteln. Diese dient später für eine Schleife als Abbruchbedingung bei Erreichen des letzten Elementes. Nun gibt es ja die Siceof() Funktion, aber die nützt mir ja nur was bei Arrays, weil die ja den gleichen Typ haben und somit durch die Größe des datentyps geteilt werden kann. In meiner Struct sind aber eben mehrere Datentypen gemischt und dann zu einem Array verkettet. Wie bekomme ich jetzt die Anzahl der Elemente dieses Arrays heraus, welche wiederum gemischte Struct-Elemente enthalten?

Vielen Dank im Voraus

Richard

Hallo Richard,

und ich kann immer noch nicht c++.

Wenn ich es recht verstehe hast du Räume. Diese befinden sich in einem Array. Also gibt SizeOf() die Anzahl der Räume. In dem Raum sind dessen Eigenschaften. Willst du die Eigenschaften Zählen?

Oder hast du die Räume per Pointer verkettet. Dann kann der Abbruch auch darüber gesichert werden, da der letzte Raum keinen Nachfolger hat und daher so etwas wie „naechsteRaum“ null ist (besser sein sollte)

Oder habe ich was nicht versatnden?

fg

Dirk.P

Hallo,

das kommt drauf an, in welcher Sprache du nun Programmierst.

Im Grunde funktioniert

typedef struct
{
 float var1;
 int var2;
 doubel var3;
} meinStruct;

sizeof(meinStruct)

in C und in C++.

Wenn du allerdings C++ Programmierst, dann nimm doch gleich einen der STL Container, die bieten dann auch Iteratoren an, mit denen du über deine Daten gehen kannst.

Meines wissens garnicht. Selbst mit dem Sizeof operator musst du bei structs vorsichtig sein, da verschiedene compiler verschiedene framings eventuell drumrum setzen (was es auch schwerer macht, structs via Netzwerk zu verschicken, wenn du jede seite mit anderen compilerversionen (z.B. Visual Studio vs. gcc) compilierst.