A voir également:
- Jeu de Pente
- 94 jeu - Télécharger - Puzzle & Réflexion
- Jeu zuma - Télécharger - Jeux vidéo
- Jeu 94 degrés - Télécharger - Divers Jeux
- Jeux de moto: jeu de course 3d - Télécharger - Course
- Logo jeu - Télécharger - Jeux vidéo
2 réponses
Utilisateur anonyme
6 févr. 2014 à 10:01
6 févr. 2014 à 10:01
Bonjour
Dans la fonction jouer_coup, tu utilises de nombreux pointeurs non initialisés : tab, abscisse, ordonnée...
Quand tu écris tab[0] tu vas donc 'taper' n'importe où dans la mémoire : le résultat est un plantage garanti
Dans la fonction jouer_coup, tu utilises de nombreux pointeurs non initialisés : tab, abscisse, ordonnée...
Quand tu écris tab[0] tu vas donc 'taper' n'importe où dans la mémoire : le résultat est un plantage garanti
Utilisateur anonyme
6 févr. 2014 à 10:42
6 févr. 2014 à 10:42
Il faudrait regarder le détail de ce que tu en fais, et c'est difficile car ton code a été posté sans les balises <code> et est de ce fait illisible.
Selon les cas, il faudrait allouer de la mémoire (avec malloc, mais alors il ne faut pas oublier le free correspondant) ou bien définir des tableaux bien dimensionnés plutôt que des pointeurs.
Par exemple, le tableau que tu retournes de la fonction jouer_coup est incorrect.
Soit c'est un tableau défini dans la fonction, et il est très dangereux de le passer en 'return' car il n'existe plus quand on quitte la fonction
Soit c'est un pointeur pour lequel tu as alloué de la mémoire à l'intérieur de la fonction, et il faut que tu penses à en faire un 'free' dès que tu n'en as plus besoin.
Mais le plus simple pour moi est de le définir comme tableau dans le main, et d'en faire un paramètre supplémentaire à ta fonction jouer_coup. Cette fonction devient alors de type void (elle ne fait plus de return) mais modifie directement ce tableau.
Selon les cas, il faudrait allouer de la mémoire (avec malloc, mais alors il ne faut pas oublier le free correspondant) ou bien définir des tableaux bien dimensionnés plutôt que des pointeurs.
Par exemple, le tableau que tu retournes de la fonction jouer_coup est incorrect.
Soit c'est un tableau défini dans la fonction, et il est très dangereux de le passer en 'return' car il n'existe plus quand on quitte la fonction
Soit c'est un pointeur pour lequel tu as alloué de la mémoire à l'intérieur de la fonction, et il faut que tu penses à en faire un 'free' dès que tu n'en as plus besoin.
Mais le plus simple pour moi est de le définir comme tableau dans le main, et d'en faire un paramètre supplémentaire à ta fonction jouer_coup. Cette fonction devient alors de type void (elle ne fait plus de return) mais modifie directement ce tableau.
6 févr. 2014 à 10:06