Comment savez-vous de combien d'espace à allouer avec malloc()?

Je suis un total C newbie, je viens du C#. J'ai appris à propos de la gestion de la mémoire et de la malloc() fonction. J'ai aussi tombé sur ce code:

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

Ce que je ne comprends pas, c'est comment beaucoup d'espace, c'est l'allocation pour a_persons_name. Est-il allouer 2 caractères (par exemple. AB) ou autre chose?

Je sais aussi que vous pouvez parfois obtenir un peu de "chance" avec malloc et l'utilisation de l'espace non alloué (ce qui peut entraîner la corruption des données et seg défauts). Alors, comment puis-je savoir combien d'espace je suis l'allocation et de la façon dont j'aurai besoin?

OriginalL'auteur Kredns | 2009-08-08