array initialisieren
-
Hallo,
also ich hab folgendes Problem:
ich hab einen eigenen Datentyp definiert, der aus einenm String und zwei floats besteht, dann hab ich einen Array aus dem Datentyp definiert. und jetzt möchte ich den array initialisiern dass in jedem element des arrays leer, 0, 0 steht. bei den beiden floats kann ich werte zuweisen, nur wenn ich dem string etwas zuweisen will kommt immer: const chat[5] kann nicht in char[20] umgewandelt werden??typedef struct { char pruefungsname[20]; float note; float gewichtung; } DVP_Noten_t; .... DVP_Noten_t noten[MAX_PRUEF]; ... for (i = 0; i < MAX_PRUEF; i++) { noten[i].pruefungsname = "leer"; //funzt net???? noten[i].note = 0; noten[i].gewichtung = 0; }
keine ahnung wieso dass nicht geht.
Danke schonmal für die HilfeGreetz
Merc
-
Um einen ganzen Speicherbereich (und das ist nun mal ein Char-Array alias String in C) zu kopieren benötigt es mehr als eine Zuweisung.
Schau dir mal die Funktion strcpy() an.
MfG SideWinder
-
danke, klappt jetzt. allerdings versteh ich immer noch nicht wieso das anders nicht klappt nen string initialisiert man doch immer so:
test[] = "blblb"
greetz
Merc
-
Aber nur bei der gleichzeitigen Deklaration.
-
<blablabla>
AJ schrieb:
Aber nur bei der gleichzeitigen Deklaration.
Definition?!
</blablabla>MfG SideWinder
-
@Side
Eine Variable bekannt machen nennt man Deklaration.
Einer Variablen einen Wert zuweisen nennt man Definition.test[] = "blblb"
ist also eine Definition. Die allerdings nur im Zusammenhang einer Deklaration funktionieren dürfte.
->
char test[] = "blblb";
Kannst ja mal ausprobieren, ob es der Compiler ohne Deklaration schluckt :p
-
<*g*>
Jede Definition ist aber auch eine Deklaration und du benötigst zumindest eine Definition
</*g*>MfG SideWinder
-
int main(void) { int zahl; return(0); }
Wo ist da die Definition bei der Variablen?
-
AJ schrieb:
int main(void) { int zahl; // Hier hat sie sich versteckt return(0); }
Wo ist da die Definition bei der Variablen?
MfG SideWinder