Como você sabe quanto espaço para alocar com malloc ()?

Eu sou um novato total em C, eu venho de C #. Eu tenho aprendido sobre gerenciamento de memória emalloc() função. Eu também encontrei este código:

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

O que eu não entendo é quanto espaço isso está alocando paraa_persons_name. Está alocando 2 caracteres (por exemplo, AB) ou algo mais?

Eu também sei que às vezes você pode ter "sorte" commalloc e usar espaço não alocado (o que pode resultar em corrupção de dados e falhas seg). Então, como eu sei quanto espaço estou alocando e quanto vou precisar?

questionAnswers(6)

yourAnswerToTheQuestion