corruption de la mémoire dans votre logiciel peut être très frustrant pour déboguer . Il permet , cependant, de comprendre ce qui provoque une corruption de mémoire et comment s'y prendre pour le corriger . La mémoire peut être endommagé par un dépassement de mémoire tampon , en utilisant la mémoire non initialisée , ou d'essayer de lire ou d' écrire dans la mémoire invalide. Le programmeur doit trouver la source du problème et y remédier . Choses que vous devez
code source du programme
compilateur pour le code source de
Afficher plus Instructions
1
Réduisez votre recherche . C'est une idée que vous vous dirigez dans la bonne direction si vous ne parvenez pas à reproduire l'erreur quand une partie du code est empêché de courir. Si vous utilisez Visual C + + , le débogueur peut vous aider étape dans le code pour trouver où la corruption se produit .
2
Peigne à travers le code source . Une fois que vous avez réduit le problème à une petite section de code, vous devez passer par là et faire en sorte que toute la mémoire lit et écrit utilisation mémoire valide . Déclarations de mise au point de sortie en utilisant des fonctions comme OutputDebugString pour s'assurer que les valeurs de mémoire sont valables . Assurez-vous que les limites du tableau sont respectées et que la mémoire est initialisé et pas définie sur null ou supprimés avant son utilisation.
3
résoudre le problème. Une fois que vous avez trouvé le problème, l'éliminer. S'il s'agit d'une désaffectation étrangères de la mémoire, il suffit de supprimer cette ligne de code . Assurez-vous que tous les tableaux sont utilisés seulement dans leurs limites et que toute la mémoire directement accessible est initialisée avant son utilisation.
4
éviter que le problème ne se reproduise. Parfois, l'aide d'un gestionnaire de mémoire de sorte que toutes les allocations et libérations mémoire ont une interface commune peut vous aider à éliminer les erreurs de corruption de mémoire . Vous pouvez vérifier tous les tableaux ni lire ni écrire , de sorte que vous pouvez garantir qu'il est dans les limites .