trozos corruptos sin clasificar al llamar a free ()

*** glibc detected *** ./a.out: free(): corrupted unsorted chunks: 0x00000000007646b0 *** *** glibc detected *** ./a.out: malloc(): memory corruption: 0x00000000007635a0 *** 

Estoy recibiendo el error anterior. Pero estoy seguro de que no estoy usando la memoria después de liberar. ¿Por qué me sale el error anterior?

Todos los montones almacenan ciertos tipos de metadatos dentro de sí mismos. Cuando haces un malloc o gratis, el montón a menudo realiza algunas funciones de contabilidad en el montón. Si detecta algo totalmente inesperado en los metadatos, normalmente se bloqueará.

Es poco probable que las operaciones normales del montón causen tales problemas, por lo que su progtwig es la causa más probable. Dado que su progtwig tiene acceso a toda la memoria en el proceso, incluidos los metadatos del montón, su progtwig podría haber sobrescrito accidentalmente algunos de los metadatos.

Una causa probable es escribir más allá del final de un búfer asignado. Lo más probable es que esta escritura esté permitida y es extremadamente probable que dañe los metadatos del montón. Cuando esto se detecta por el montón, su progtwig normalmente abortará.

Puede ser que esté intentando liberar con un puntero que no apunta correctamente a la memoria asignada dinámicamente.