Woher wissen Sie, wie viel Speicherplatz Sie mit malloc () zuweisen müssen?

Ich bin ein absoluter C-Neuling und komme aus C #. Ich habe über Memory Management und das Lernenmalloc() Funktion. Ich bin auch auf diesen Code gestoßen:

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

Was ich nicht verstehe, ist, wie viel Speicherplatz dies bereitstellta_persons_name. Belegt es 2 Zeichen (zB AB) oder etwas anderes?

Ich weiß auch, dass man manchmal "Glück" haben kannmalloc und nicht zugewiesenen Speicherplatz verwenden (was zu Datenkorruption und Seg-Fehlern führen kann). Woher weiß ich, wie viel Speicherplatz ich zuteile und wie viel ich benötige?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage