Hallo,
ich habe eine Struktur, die ich schon gleich beim programmieren
initialisiere:
1 | typedef struct // Struktur für die auf den DSP vorhandenen Parameter
|
2 | {
|
3 | unsigned int Nummer; // Parameternummer
|
4 | unsigned char Beschreibung[28]; // Parameterbeschreibung die zum Peripheriecontroller gesendet wird
|
5 | unsigned char Datenlaenge; // Datenlänge für den parameterwert
|
6 | unsigned char Daten[28]; // Parameterwert
|
7 | }Parametertabelle;
|
8 |
|
9 |
|
10 |
|
11 | Parametertabelle Parametersatz[]={ {1,"MotorCtr._ 12000000111111",6,"000000"},
|
12 | {3,"Error Code 41 \x7F\x7F\x7F\x7F\x7F\x7F",6,"Wrn123"},
|
13 | {5,"Rotation__HZ__73000000000999",3,"350"},
|
14 | {999,"CANTEST___ 13000000999999",3,"12345"}, // Parameter 999 ist der CAN Testparameter
|
15 | };
|
Jetzt will ich während der Laufzeit feststellen wieviele Elemente mein
Array Parametersatz[] (von der Struktur Parametertabelle) besitzt.
Hatte dies so vor:
1 | test=sizeof(Parametersatz)/sizeof(Parametersatz[0]);
|
test ist vom Typ unsigned char.
Bekomme leider immer einen Fehler - dieser liegt an dem Teil
"sizeof(Parametersatz)", deshalb zeige ich mal diesen Teil mit dem
Fehler:
1 | test=sizeof(Parametersatz); // Fehler: incomplete type is not allowed
|
2 |
|
3 | // oder ein anderer Versuch
|
4 |
|
5 | test=sizeof(Parametersatz[]); // Fehler: expected an expression
|
Der Fehler im zweiten Fall ist recht klar - denn er erwartet ja eine
Arrayposition. Ich will ihm halt an der Stellt sagen, das die Größe des
kompletten Arrays Parametersatz zurückgeben soll - also alle Elemente
die durch die Initialisierung beim programmieren entstanden sind.
Hoffe ihr könnt mir helfen ;)