我想創建一個函式來初始化這樣的結構值:
// 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);
在函式“initialiserJoueur”中,欄位“nom”和“prenom”不會初始化并且是紅色下劃線,一個想法?
uj5u.com熱心網友回復:
陣列不能直接賦值。您需要使用strcpy寫入一個:
joueur->nom = strcpy("");
joueur->prenom = strcpy("");
或者更簡單,因為您將所有欄位設定為 0,只需以這種方式初始化陣列:
Personne joueur[2] = { { 0 } };
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/369393.html
