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 Hilfe

    Greetz

    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


Anmelden zum Antworten