I want to create a function to initialize values of structure like that :
// main.c
#include <stdio.h>
#include <stdlib.h>
#include "main.h"
int main(int argc, char *argv[]){
int i, taille = 2, cmpt = 0;
Personne joueur[2];
for(i = 0; i < taille; i ){
initialiserJoueur(&joueur[i]);
}
printf("\n%s %s : %d\n", joueur[0].nom,joueur[0].prenom, joueur[0].age);
return 0;
}
void initialiserJoueur(Personne *joueur){
joueur->age = 0;
joueur->nom = "";
joueur->prenom = "";
}
// main.h
typedef struct Personne Personne;
struct Personne {
int age;
char nom[100];
char prenom[100];
};
void initialiserJoueur(Personne *joueur);
in function "initialiserJoueur", the fields "nom" and "prenom" won't initialize and are red underline, an idea ?
CodePudding user response:
Arrays can't be assigned to directly. You need to use strcpy
to write to one:
joueur->nom = strcpy("");
joueur->prenom = strcpy("");
Or even simpler, since you're setting all fields to 0, just initialize the array that way:
Personne joueur[2] = { { 0 } };