¿Cómo sabes cuánto espacio para asignar con malloc ()?

Soy un novato en C total, vengo de C #. He estado aprendiendo sobre la gestión de la memoria y lamalloc() función. También me he encontrado con este código:

char *a_persons_name = malloc(sizeof(char) + 2);

Lo que no entiendo es cuánto espacio está asignando paraa_persons_name. ¿Está asignando 2 caracteres (por ejemplo, AB) o algo más?

También sé que a veces se puede tener "suerte" conmalloc y use espacio no asignado (lo que puede resultar en la corrupción de datos y fallas de seg). Entonces, ¿cómo puedo saber cuánto espacio estoy asignando y cuánto necesitaré?

Respuestas a la pregunta(6)

Su respuesta a la pregunta