Struct Problem
-
Hi
Ich hab ein Problem damit einer Variablen einen vordefinierten Wert zu zuweisen!
struct s_Daten { unsigned int ID ; unsigned int WERT; };
typedef struct s_Daten Daten;
#define INIT_DATEN {0, 0}
Das sind meine Deklarationen!
Nun will ich den Wert zuweisen aber da kommt ein Fehler das eine "{" fehlt!
Weiß einer warum??Daten Satz; Satz = INIT_DATEN;
PS:
Wieso gehen die Code maskierungen nicht mehr??
-
Daten Satz = INIT_DATEN;
So geht es!
Deine Zuweisung ist falsch.
Zeh Mau :xmas1:
-
Thes-One schrieb:
Wieso gehen die Code maskierungen nicht mehr??
Du hast nicht zufällig das Häkchen bei BBCode in diesem Beitrag deaktivieren gesetzt?
-
Oh, man!
Danke!Kann sich hier irgendeiner einen Grund denken wofür man eine überprüfung auf eine gültige Struktur braucht??
Wir müssen in einer Funktion einen Zeiger auf eine Variable(Struct) überprüfen ob es eine gültige Struktur hat!
Ich frage mich wofür und wie???
Eine überprüfung ob eine Variable vom Typ "Struct" ist erscheint mir sinnlos!
-
Sorry, ich glaube, deine Frage ist zu ungenau und unpräzise. Kannst du dich korrekter ausdrücken??? Dann ist auch die Antwort leichter zu geben.
:xmas2:
-
Ich habe die Struktur von s.o!!
Dann habe ich einen Zeiger!
Daten *NeuerSatz;
Nun soll ich überprüfen ob der Zeiger auf eine gültige Struktur zeigt!
(mit if oder assert)!
-
Thes-One schrieb:
Ich habe die Struktur von s.o!!
Dann habe ich einen Zeiger!
Daten *NeuerSatz;
Nun soll ich überprüfen ob der Zeiger auf eine gültige Struktur zeigt!
(mit if oder assert)!Sofern der Zeiger eine Adresse enthält, können immer über den Zeiger Werte gelesen oder geschrieben werden. Eventuell darfst du aber nur in einen bestimmten Bereich hineinschreiben. Vielleicht soll nur geprüft werden, ob du einen Zeiger mit der Adresse NULL hast.
Zeh Mau
-
Thes-One schrieb:
Ich habe die Struktur von s.o!!
Dann habe ich einen Zeiger!
Daten *NeuerSatz;
Nun soll ich überprüfen ob der Zeiger auf eine gültige Struktur zeigt!
(mit if oder assert)!mit if, allerdings solltest du dafür sorgen, dass der pointer mit 0 (oder etwas vergleichbarem) belegt wird, wenn er ungültig ist.
Daten *neuer_satz = (Daten*)0; ... if (neuer_satz) { ... // pointer ist gültig }
'assert' ist zum abfangen von programmierfehlern da und in der release-version nicht mehr vorhanden.