Mon exe plante sur la lecteur d'un case d'un tableau
vincent_time
Messages postés23Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention12 décembre 2008
-
12 déc. 2008 à 21:24
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 2014
-
13 déc. 2008 à 13:37
salut,
j'ai un tableau de char nommé carte de 4x4 cases, ma fonction teste toutes les cases adjacentes à carte[y][x].
les 4 cases adjacents sont donc carte[y-1][x], carte[y+1][x], carte[y][x+1] et carte[y][x-1]
sauf que ma fonction est demande pour carte[0][0], quand ma fonction teste carte[-1][0] mon programme plante, alors que quand elle teste carte[0][-1] case qui n'existe pas aussi, le programme fonctionne....
pourquoi mon programme plante t-il pour l'un et pas pour l'autre ???
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 13 déc. 2008 à 13:37
Salut,
Comme précisé par BruNews, inutile de perdre du temps pour savoir pourquoi ça plante dans un cas et pas dans l'autre. Tout dépend du code. Le premier index d'un tableau est toujours 0 et le dernier est le nombre d'éléments moins 1. La valeur -1 n'est pas valide quelque soit le cas. Cette valeur dépend du type da variable utilisée comme index du tableau. Si c'est un int alors elle correspondra à 0xFFFFFFFF qui vaut 4294967295, le plantage est assuré. Si c'est un short elle vaudra 65535 et il y'a grand risque de plantage car tout dépend de l'espace mémoire de l'exécutable. Si c'est un char elle vaudra 255. Le risque de plantage est moindre mais, comme pour le cas précédent, tout dépend de l'espace mémoire de l'exe.