Bonjour,
J'ai un petit problème de libération de mémoire allouée dynamiquement à la variable num_copy (n est défini avant, et affecté) :
Quand je lance mon programme, au moment de libérer num_copy, j'obtiens un message d'erreur disant que l'application a écrit en mémoire après la fin du heap buffer...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 unsigned long* num_copy=(unsigned long*)calloc(n,sizeof(unsigned long));
Pour vérifier que num_copy existe bien, je passe par CrtDump de VS, juste avant la commande free(num_copy)... j'obtiens :
L'adresse 0x00364E70 est bien celle de num_copy. Que signifie le "*!W" au début du data ? Cela signifie-t-il que le block est protégé en écriture ? Quelle peut être la cause du bug ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Detected memory leaks! Dumping objects -> ... {52} normal block at 0x00364E70, 8 bytes long. Data: < (*!W Q> 83 BC 28 2A 21 57 0F 51 ...
Merci d'avance.
Partager