Probleme de declaration d'une chaine dynamique
Fermé
wisley80
Messages postés
12
Date d'inscription
mercredi 9 novembre 2011
Statut
Membre
Dernière intervention
7 mai 2015
-
7 mai 2015 à 00:46
zedzet Messages postés 18 Date d'inscription mardi 5 mai 2015 Statut Membre Dernière intervention 21 mai 2015 - 7 mai 2015 à 07:57
zedzet Messages postés 18 Date d'inscription mardi 5 mai 2015 Statut Membre Dernière intervention 21 mai 2015 - 7 mai 2015 à 07:57
A voir également:
- Probleme de declaration d'une chaine dynamique
- Tableau croisé dynamique - Guide
- Chaine tnt gratuite sur mobile - Guide
- Liste déroulante dynamique excel - Guide
- Plus de chaine tv - Guide
- Nouvelle chaîne tnt gratuite 2024 - Accueil - TV & Vidéo
1 réponse
zedzet
Messages postés
18
Date d'inscription
mardi 5 mai 2015
Statut
Membre
Dernière intervention
21 mai 2015
8
Modifié par zedzet le 7/05/2015 à 03:18
Modifié par zedzet le 7/05/2015 à 03:18
Bonjour,
je viens d'analyser votre code et j'ai découvert cette ligne dans votre typedef :
or à chaque itération vous avez mis
ce qui veut dire que vous luis affecter la même adresse de variable (qui contient la dernière valeur lue).
et il ya aussi dans la fonction Ajouterjoueur :
il faut mettre :
voici une petite rectification de vos petites erreurs , j'ai ajouter deux lignes pour afficher les 2 premier nom de joueur (pour vérifier):
je viens d'analyser votre code et j'ai découvert cette ligne dans votre typedef :
char *nom;
or à chaque itération vous avez mis
tmp->nom=nom;
ce qui veut dire que vous luis affecter la même adresse de variable (qui contient la dernière valeur lue).
et il ya aussi dans la fonction Ajouterjoueur :
il faut mettre :
cour->nom=nom; cour->suiv=tmp; tmp->suiv=NULL;
voici une petite rectification de vos petites erreurs , j'ai ajouter deux lignes pour afficher les 2 premier nom de joueur (pour vérifier):
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct Joueur Joueur; struct Joueur { char *nom; int *score; Joueur *suiv; }; Joueur* Ajouterjoueur (Joueur *j, char *nom) { int k,L ; char *nom_joueur = NULL; Joueur *cour=j; Joueur *tmp=malloc(sizeof(Joueur)); /// copier le nom dans nom_joueur : L = strlen(nom); nom_joueur = (char*)malloc((L+1)*sizeof(char)); strcpy(nom_joueur,nom); while (cour->suiv!=NULL) { cour=cour->suiv; } cour->nom = nom_joueur; cour->suiv = tmp; tmp->suiv = NULL; return(cour); } int main() { int i,nbrj=0; char *nom = NULL; Joueur *ListJoueur = NULL; Joueur *Tete_ListJoueur = NULL; nom = (char*)malloc(sizeof(char)); ListJoueur=malloc(sizeof(Joueur)); /// sauvgarder l'adresse de la tete de liste : Tete_ListJoueur = ListJoueur; printf("**********Jouer************\n\n"); do { printf("Donner le nombre de joueur : "); scanf("%d",&nbrj); }while (nbrj<1); for (i=1;i<=nbrj;i++) { printf("donner le nom du joueur N°%d :",i); scanf("%s",nom); printf("%s\n",nom); ListJoueur = Ajouterjoueur(ListJoueur,nom); }; /// afficher les deux premier nom de joueur : printf("\n\n\n"); printf("affichage du contenu : \n"); printf("%s\n",Tete_ListJoueur->nom); printf("%s\n",Tete_ListJoueur->suiv->nom); //printf("%s\n",Tete_ListJoueur->suiv->suiv->nom); }
7 mai 2015 à 04:02
mais à l'exécution d'un copier coller de votre code sa ne marche pas le programme s'arrête de fonctionner juste après que je tape le nom du 1 joueur "AAA" et qu'il l'affiche "AAA"
avec l'erreur ""Process terminated with status 255 (9 minute(s), 40 second(s))""
est-ce que sa peut etre a cause de mon PC ???? :/
sinon pourquoi sa marche pour vous et moi non???
7 mai 2015 à 07:57
allez dans
setting-> envirenement
(vous etes alors sur general setting)
modifier alors le champs tout en bas :
terminal to lunch console programs
choisissez n'importe quoi (enfin modifier et re-compiller)
j'espère que cela vous aidera sinon copier-coller le message d'erreur et lancer un recherche google vous tomberai probablement sur des millier de cas similaire :p
bonne chance.