Debug Error à cause d'un free - C - Programmation
Marsh Posté le 24-01-2005 à 00:16:55
Après ta 1° boucle for j == i-d et donc l'accès suivant mot[j]='\0' tu fais un buffer overflow.
Marsh Posté le 24-01-2005 à 00:21:35
HelloWorld a écrit : Après ta 1° boucle for j == i-d et donc l'accès suivant mot[j]='\0' tu fais un buffer overflow. |
C'est à dire ?
Comment ce fait-ce ?
Marsh Posté le 24-01-2005 à 00:25:37
mcyrb a écrit : C'est à dire ? |
un tableau en C est indexé de 0 à n-1 (n étant le nombre d'éléments du tableau).
une chaine de caractère est un tableau de caractères terminé par un zéro terminal (qui est vers la fin, d'où le qualificatif terminal).
question : qu'y a-t-il à l'index n d'un tableau ?
Marsh Posté le 24-01-2005 à 00:26:27
ReplyMarsh Posté le 24-01-2005 à 00:37:12
SquiZZ a écrit : un tableau en C est indexé de 0 à n-1 (n étant le nombre d'éléments du tableau). |
Ok j'ai compris !
Mdr ok l'erreur trop naze
J'ai alloué une case en plus et tout fonctionne nickel, merci beaucoup !
Marsh Posté le 24-01-2005 à 00:05:58
Salut
Je sais je m'y prends tres tard mais j'ai un exercice à rendre demain matin et je ne parviens pas à corriger une erreur qui me vient à cause d'un free().
Voici ce message derreur (sous Visual C++ 6.0 et .NET):
Debug Error!
[...]
DAMAGE: after Normal block (#44) at 0x003208B8.
(Press Retry to debug the application)
Abandonner|Recommencer|Ignorer
Voici la partie de mon code concernée par ce probleme:
Merci d'avance (dans l'espoir que quelqu'un me réponde avant que j'aille dormir )
EDIT: Pour aller plus vite, cette partie sert à extraire en minuscules un mot d'une chaine lue, de rechercher dans un tableau T si il y est, et s'il y est d'incrementer T.nbf
Message édité par mcyrb le 24-01-2005 à 00:08:31