bonjour,
j'ai un programme à développer (équivalent à puissance 4) et j'ai un problème avec la gestion de mémoire à priori.
j'ai un tableau de 10 lignes et 15 colonnes dont tous les éléments sont égaux à 0. quand le joueur 1 joue dans une colonne, ça place le pion le plus bas possible et ça met 1 à l'endroit correspondant dans le tableau. tout cela fonctionne à merveille quand je suis dans un mode humain contre humain.
je dois ajouter une ia (basique) à mon programme. l'ia semble fonctionner correctement. cependant, dès que je veux mettre un pion dans la colonne 10, ça provoque un segfault. si je mène l'ia à placer dans la colonne 10, elle ne le fait pas et place son pion ailleurs. avec gdb, j'ai réussi à savoir à peu près d'où ça vientle problème est l'adresse de peutJouerDansLigne (0x0 !). c'est un tableau à une dimensionProgram received signal SIGSEGV, Segmentation fault.
0x08048c56 in iaJoue (joueurN=1, myGrid=0xbff3cef4, peutJouerDansLigne=0x0) at puiss.h:473
473 if(peutJouerDansLigne[j] == -1)
je ne vois pas du tout pourquoi ça pose problème sur la colonne 10 et uniquement sur celle-ci : toutes les autres fonctionnent sans souci. j'ai mis mon source en pièce jointe pour que vous puissiez regarder l'intégralité du code
pourriez-vous m'aider ?
ps :Envoyé par gcc -v
Partager