¿Cómo sabe lo libre para liberar?

En la programación en C, puedes pasar cualquier tipo de puntero que desees como argumento para liberar, ¿cómo sabe el tamaño de la memoria asignada para liberar? Siempre que pase un puntero a alguna función, también debo pasar el tamaño (es decir, una matriz de 10 elementos debe recibir 10 como parámetro para saber el tamaño de la matriz), pero no tengo que pasar el tamaño a la Función libre. ¿Por qué no, y puedo usar esta misma técnica en mis propias funciones para evitar que necesite cargar alrededor de la variable adicional de la longitud de la matriz?

Respuestas a la pregunta(10)

Su respuesta a la pregunta