¿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é?