La Glibc détecté malloc() corruption de la mémoire (0xb6179bb8) lors de l'appel de nouveau mot-clé C++

Mon programme s'exécute à un point où l'appel de la nouveau mot-clé serait la cause de l'erreur indiqué ci-dessus. c'est à dire char* a = new char[100]. L'erreur est reproductible et à chaque fois. J'ai exécuter le programme jusqu'à ce que le point de l'appel de la nouveau mot-clé. Il semble être à l'emplacement de mémoire est endommagé au point, mais je ne suis pas sûr de ce qu'il problème est.

Quelles sont les causes possibles de cette erreur?

  • La cause de l'erreur, c'est que vous faites quelque chose d'incorrect dans votre code. Puisque vous n'avez pas posté de code, il est impossible d'être plus précis que ça.
  • regardez la précédente allocation de mémoire dans votre code, peut être quelque chose de mal à cela. Ou vous pouvez endommager le tas écrit à l'inadéquation de l'adresse avant de votre allocation.
  • 0xb6179bb8 était-il...? Laissez-moi juste le look que l'on place dans mon Grand Livre des Erreurs. Plus sérieusement, il est plus susceptible d'être une autre erreur de mémoire dans la mémoire d'utilisation: suppression/libération de mémoire plusieurs fois, désadaptation unique-var et de la matrice de new/delete, la réécriture de la mémoire avant ou après les blocs de mémoire que vous avez été à la réservation, mais pourrait être un autre genre de comportement qui peuvent provoquer un comportement indéterminé. En général, vous pouvez utiliser des outils comme valgrind ou purifier pour trouver le point où vous faites de l'activité illégale à l'origine de ce....
InformationsquelleAutor Leslieg | 2010-10-01