kyubi6363
Messages postés2Date d'inscriptiondimanche 19 juin 2005StatutMembreDernière intervention22 mai 2010
-
22 mai 2010 à 02:06
kyubi6363
Messages postés2Date d'inscriptiondimanche 19 juin 2005StatutMembreDernière intervention22 mai 2010
-
22 mai 2010 à 16:31
Voila sa compile bien mais erreur de segmentation quand je lance. Pouvais vous me dire ce qu'il ne va pas :)
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 22 mai 2010 à 14:15
Ça m'étonne que tu arrives à compiler sans avoir des warnings (ou alors tu ne les a pas activé).
Tu essaies de faire passer de pointeurs dans des fonctions dont les arguments ne sont pas compatibles. Le laxisme du C te permet de compiler, mais ce que tu as fait est faux.
Un tableau à double dimension est de type **. Donc tu ne peux pas le passer dans un *** (car &map donnera ** et non ***).
De plus, lorsque tu initialises ton tableau à double dimension, il faut faire un malloc pour la première dimension, et autant de malloc pour la deuxième. Ce qui fera un malloc + TAILLE_LARGEUR malloc.
Faire un seul malloc ne suffit pas.
Enfin, si tu fais un ***, alors dans ta fonction pour attribuer quelque chose, il te faut faire: (*mappy)[i][j] = MAP_VIDE;
2 solutions:
- Tu fais un vrai tableau à double dimensions
- Tu fais un tableau à simple dimension et tu accès aux élément en faisant: tab[i + j* largeur] au lieu de tab[i][j].