Skąd wiesz, ile miejsca przeznaczyć na malloc ()?

Jestem całkowitym nowicjuszem C, pochodzę z C #. Uczyłem się zarządzania pamięcią imalloc() funkcjonować. Natknąłem się również na ten kod:

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

Nie rozumiem jednak, ile miejsca przeznacza na toa_persons_name. Czy przydziela 2 znaki (np. AB) lub coś innego?

Wiem też, że czasami możesz mieć szczęściemalloc i używaj nieprzydzielonego miejsca (co może spowodować uszkodzenie danych i błędy seg). Skąd mam wiedzieć, ile miejsca przeznaczam i ile będę potrzebować?

questionAnswers(6)

yourAnswerToTheQuestion