DanDanger
20-02-2003, 21:56
Hallo,
ich hab' da mal wieder so ein typisches C/C++ Zeiger-Problem :
in meiner entitySys.h gibt es ein struct namens "entity" :
entitySys.h :
typedef struct
{
float RotX ;
float RotY ;
(.......)
} entity ;
extern entity *User ;
Nun sollen den Werten RotX und RotY float-Werte zugewiesen werden.
Da der Zeiger auf User extern Definiert ist (und in der entitySys.c auch definiert wird), sollte das ja kein Problem sein.
Wenn ich aber nun in der main.c :
main.c :
#include "entitySys.h"
(.......)
User->RotX = floatWert ;
User->RotY = floatWert ;
(.......)
ausführe, kommt es zu einem Segmention-Fault (Speicherzugriffsfehler) :-(
Meine Frage : WARUM ?????
Was mache ich Falsch, schliesslich weise ich den Variabeln, und nicht den Speicheradressen die Werte zu ?
Verzweifelte Grüsse
DanDanger
ich hab' da mal wieder so ein typisches C/C++ Zeiger-Problem :
in meiner entitySys.h gibt es ein struct namens "entity" :
entitySys.h :
typedef struct
{
float RotX ;
float RotY ;
(.......)
} entity ;
extern entity *User ;
Nun sollen den Werten RotX und RotY float-Werte zugewiesen werden.
Da der Zeiger auf User extern Definiert ist (und in der entitySys.c auch definiert wird), sollte das ja kein Problem sein.
Wenn ich aber nun in der main.c :
main.c :
#include "entitySys.h"
(.......)
User->RotX = floatWert ;
User->RotY = floatWert ;
(.......)
ausführe, kommt es zu einem Segmention-Fault (Speicherzugriffsfehler) :-(
Meine Frage : WARUM ?????
Was mache ich Falsch, schliesslich weise ich den Variabeln, und nicht den Speicheradressen die Werte zu ?
Verzweifelte Grüsse
DanDanger