Schyzophrenic
03/06/2007, 05h18
Bonjour à tous,
J'ai rencontré un problème que je pense avoir résolu, mais je ne comprends absolument pas pourquoi (et donc je ne l'ai peut etre pas résolu... !! :)) Bon je sais pas si je suis clair !! :S
Je m'explique :
J'ai un code assez touffu (mais bien rangé, si si :p). Le code plantait à peu près 2 fois sur 3 et no$GBA m'indiquait que mon code était "unstable" (en appuyant sur F3... D'ailleurs est-ce que quelqu'un sait si l'information qu'il donne est fiable ? )
Je me suis alors plongé dans mon code pour essayer de comprendre. En gros, j'ai mis en commentaire des lignes puis j'ai réduit les lignes commentées jusqu'à trouver celle qui posait souci : c'était une fonction dans laquelle il y avait une boucle while. Jusque la rien d'extraordinaire !
J'initialise un compteur avant la boucle : unsigned char counter = 0 et je boucle tant que le compteur n'a pas atteint une certaine valeur.
Pour une raison cela faisait parfois planté l'appli...
J'ai tenté un truc (je sais même pas pourquoi d'ailleurs ! ) : j'ai remplacé
unsigned char counter = 0;
while (counter<VALUE) {
...
counter++;
}
par
unsigned char * counter = 0
while (*counter<VALUE) {
...
(*counter)++;
}
et là... miracle, je n'ai plus de problème !!! :S
Est-ce que quelqu'un aurait une idée pourquoi cela fait cela ? Est-ce une question de gestion de mémoire ? J'avoue que je n'y comprends pas grand chose !!:hmm:
Merci beaucoup pour votre aide !!!
J'ai rencontré un problème que je pense avoir résolu, mais je ne comprends absolument pas pourquoi (et donc je ne l'ai peut etre pas résolu... !! :)) Bon je sais pas si je suis clair !! :S
Je m'explique :
J'ai un code assez touffu (mais bien rangé, si si :p). Le code plantait à peu près 2 fois sur 3 et no$GBA m'indiquait que mon code était "unstable" (en appuyant sur F3... D'ailleurs est-ce que quelqu'un sait si l'information qu'il donne est fiable ? )
Je me suis alors plongé dans mon code pour essayer de comprendre. En gros, j'ai mis en commentaire des lignes puis j'ai réduit les lignes commentées jusqu'à trouver celle qui posait souci : c'était une fonction dans laquelle il y avait une boucle while. Jusque la rien d'extraordinaire !
J'initialise un compteur avant la boucle : unsigned char counter = 0 et je boucle tant que le compteur n'a pas atteint une certaine valeur.
Pour une raison cela faisait parfois planté l'appli...
J'ai tenté un truc (je sais même pas pourquoi d'ailleurs ! ) : j'ai remplacé
unsigned char counter = 0;
while (counter<VALUE) {
...
counter++;
}
par
unsigned char * counter = 0
while (*counter<VALUE) {
...
(*counter)++;
}
et là... miracle, je n'ai plus de problème !!! :S
Est-ce que quelqu'un aurait une idée pourquoi cela fait cela ? Est-ce une question de gestion de mémoire ? J'avoue que je n'y comprends pas grand chose !!:hmm:
Merci beaucoup pour votre aide !!!