Ce n'est pas une exception C++, c'est une exception d'exploitation. Soit vous avez accédé à la mémoire qui n'existait pas ou vous avez corrompu une structure de données et écrasé son destructeur. (Je suppose que vous essayez de mettre à zéro un bloc avant de saisir la structure qu'il contient.)
En C++, vous n'appelez généralement pas memset
. std::fill
fait la même chose (et appelle généralement à memset
si possible), mais avec le type de sécurité.
Si vous souhaitez mettre à zéro des blocs de mémoire avant de les charger, vous avez besoin d'une bibliothèque de débogage. Il n'y a aucun moyen propre d'accéder à la mémoire d'un objet après que son destructeur a été appelé et avant que free
soit appelé. Debug malloc est probablement une caractéristique de votre environnement de développement.
Modifier: vous pouvez accéder à la mémoire pré-free
pour les objets, mais pas pour les tableaux, en remplaçant delete
. Mais ce n'est pas une activité pour un débutant/intermédiaire.
les informations fournies sont vagues.il est difficile de deviner le problème avec cette information.please poster votre code si possible! – Vijay