Problem mit Wertezuweisung bei Array vom Typ eines Structs

dertobian

Mitglied
Hallo Leute,

sicherlich handelt es sich hier nur um ein Verständnisproblem...
Auf diversen Seiten findet man ähnlichen Code wie den weiter unten folgenden.
Ich bekomme aber den Fehler
"Zuordnung eines Arrays der konstaten Größe 0 nicht möglich"
und diesen
"'syscall': 'int []' unterscheidet sich von 'std::vector<_Ty>' in Bezug auf die Anzahl vorgenommener Dereferenzierungen"

Code:
struct t_syscall {
int		id;
std::string	name;
};

std::vector<t_syscall>syscall(200); // ich vermute, ich habe hier was falsch gemacht?

syscall[0].id = 1; // an dieser Stelle erhalte ich den Fehler
syscall[0].name = "sys_exit"; // hier natürlich auch

Woran mag das liegen?

Gruß Tobian.
 
Zuletzt bearbeitet:
Hallo nochmal,

da mir bisher leider noch niemand helfen konnte, möchte ich noch etwas hinzufügen, was eventuell zur Problemlösung beitragen könnte...

Ich hatte den Code dann nochmal folgendermaßen umgebaut:
Code:
struct t_syscall {
int		id;
std::string	name;
};

const int max_syscall_table_len = 200;

t_syscall syscall[max_syscall_table_len];

syscall[0].id = 1;
syscall[0].name = "sys_exit";

Obwohl ich einen Array syscall vom Typ t_syscall erzeuge, zeigt mir Visual Studio 2005 an, dass syscall als int deklariert ist. Da bekomme ich in der nächsten Zeile natürlich den Fehler
"Zuordnung eines Arrays der konstaten Größe 0 nicht möglich".

Der Code steht übrigens nicht in meiner main, sondern in der von Visual Studio erstellten ressource.h - sollte aber jetzt eigentlich nicht stören. String-Deklarationen funktionieren ja auch...
Kann damit jemand was anfangen?
 
Hi.

Du kannst in einer Header Datei keine Zuweisungen vornehmen. Man sollte generell in der Header Datei auch keine Definitionen von Variablen - nur Deklarationen vornehmen.

Gruß

PS: Das gilt übrigens generell, du kannst global keine Zuweisungen vornehmen, diese können nur in Funktionen bzw. Methoden erfolgen.
 
Zurück