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
.