¿Dónde almacenan malloc () / free () los tamaños y direcciones asignados?

¿Dónde almacenan malloc () y free () las direcciones asignadas y sus tamaños (Linux GCC)? He leído que algunas implementaciones los almacenan en algún lugar antes de la memoria asignada real, pero no pude confirmarlo en mis pruebas.

El fondo, tal vez alguien tiene otro consejo para esto: estoy experimentando un poco con el análisis de la memoria de almacenamiento dinámico de un proceso para determinar el valor actual de una cadena en el otro proceso. Acceder a la memoria de almacenamiento dinámico del proceso y pasear por él no es un problema. Sin embargo, debido a que el valor de la cadena cambia y el proceso asigna una nueva parte de la memoria cada vez, la dirección de la cadena cambia. Debido a que la cadena tiene un formato fijo, todavía es fácil de encontrar, pero después de algunos cambios, las versiones antiguas de la cadena todavía están en la memoria de almacenamiento dinámico (probablemente liberada, pero aún no reutilizada / sobrescrita) y, por lo tanto, no puedo decir qué cadena es la actual.

Entonces, para encontrar el actual, quiero verificar si una cadena que encuentro en la memoria todavía se usa comparando su dirección con las direcciones malloc / free know about.

ciao, Elmar

Respuestas a la pregunta(4)

Su respuesta a la pregunta