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