Initialisierung von Varieblen per Funktion



  • Ich habe eine Struktur Player. Diese hat ein paar int-Variablen. In der main-Funktion definiere ich eine Variable vom Typ Player und versuche sie mit meiner init-Funktion zu initialisieren. printf müßte nun "1" ausgeben. Stattdesen gibt er aber irgendeinen sonderbaren Wert wie zum Beispiel "-139007624" aus. Wo ist mein Fehler?

    #include <stdio.h>
    
    struct Player
    {
        int level;
        int experience;
        int experience_needed;
    };
    
    void init_player(struct Player* player)
    {
        player->level = 1;
        player->experience = 0;
        player->experience_needed = 10;
    }
    
    int main()
    {
        struct Player player;
        init_player(&player);
        printf("Level %d");
    }
    


  • ERLEDIGT

    Ich habe vergessen, Player.level printf als Argument zu übergeben. Entschuldigung, manchmal sieht man scheinbar offensichtlichen Kleinkram nicht...



  • Der Compiler sollte in diesem Fall eine Warnung (sollte man nie ignorieren) ausgeben. Wenn nicht solltest du das Warn-Level hochsetzen.

    In gcc gibts z.B. -Wall und -pedantic . Eventuell sogar -Werror .


Anmelden zum Antworten