String dans structure
Résolu
fbdidi
-
fbdidi -
fbdidi -
Bonjour,
j'essaye d'insérer un string dans une structure comme ceci
Je crois que le problème vient de l'allocation mémoire mais comment la faire?
Merci d'avance
j'essaye d'insérer un string dans une structure comme ceci
typedef char* nom;
typedef struct{
nom nomJoueur;
int nbVie;
nom nomAllier;
}joueur;
int main(void)
{
joueur humain;
printf("Qu'elle est votre nom?");
scanf("%s",humain.nomJoueur);
Je crois que le problème vient de l'allocation mémoire mais comment la faire?
Merci d'avance
A voir également:
- Dans son restaurant igor utilise une application pour gérer les réservations
- Logiciel calcul structure bois gratuit - Télécharger - Architecture & Déco
- Structure d'un rapport de stage - Guide
- Trouvez l'erreur dans la structure du document et corrigez-la. - Forum Word
- Erreur de mise à jour de la table des matières! ✓ - Forum Word
- Problème table des matières word titres pas pris en compte - Forum Word
1 réponse
Salut fbdidi,
Il faut allouer l'espace mémoire avec malloc (et le libérer lorsqu'on n'en a plus besoin avec free).
Tu peux utiliser fgets, avec le flux stdin, qui te permettra le préciser le nombre maximum de caractères saisis à prendre en compte selon la taille de l'espace mémoire réservé, et ainsi éviter les débordements de mémoire plus facilement qu'avec scanf.
http://fr.openclassrooms.com/informatique/cours/realiser-des-saisies-securisees-grace-a-fgets/captures-securisees-grace-a-fgets-et-une-fonction-de-conversion
Ton typedef "nom" ne sert pas à grand chose, mais c'est une affaire de goût.
Dal
Il faut allouer l'espace mémoire avec malloc (et le libérer lorsqu'on n'en a plus besoin avec free).
Tu peux utiliser fgets, avec le flux stdin, qui te permettra le préciser le nombre maximum de caractères saisis à prendre en compte selon la taille de l'espace mémoire réservé, et ainsi éviter les débordements de mémoire plus facilement qu'avec scanf.
http://fr.openclassrooms.com/informatique/cours/realiser-des-saisies-securisees-grace-a-fgets/captures-securisees-grace-a-fgets-et-une-fonction-de-conversion
Ton typedef "nom" ne sert pas à grand chose, mais c'est une affaire de goût.
Dal
fgets(humain.nomJoueur, sizeof char * 20, stdin);
ne fonctionne pas. J'ai une erreur
merci c'est nikel