Ich habe einen Puffer und möchte einen Test durchführen, um festzustellen, ob der Puffer genügend Kapazität hat. Finde die Anzahl der Elemente, die ich zum Puffer hinzufügen kann.Wie wird die Größe eines zugewiesenen C-Puffers ermittelt?
char *buffer = (char *)malloc(sizeof(char) * 10);
Doing a
int numElements = sizeof(buffer);
10 nicht zurückkehren, irgendwelche Ideen, wie ich dies erreichen kann?
Übergeben Sie wirklich eine Frage an den Fragesteller? Das ist nicht wirklich, warum wir hier sind ... – Evert
@Jens Nun, ich weiß, dass sizeof() die richtige Größe für String-Literale und Arrays zurückgibt, aber warum? Wo ist die Größeninformation gespeichert? Zum Beispiel gibt char * p = "hallo" die Größe des Zeigers, char p [10] ergibt die Größe von zehn. – Zebrafish
@Evert Wir sind hier, um Antworten zu bekommen, und er gab eine Antwort. Posing Follow-up-Fragen ist ein legitimes Bildungsgerät.Außerdem glaube ich nicht, dass seine Frage Kritik erfordert, weil die Antwort auf seine Frage die Antwort ist, die er gerade gegeben hat, also versteckt er nicht wirklich Informationen. Ich nehme an, man könnte über die Wirksamkeit oder den Wert debattieren, der "eine Übung für den Leser" usw. übrig lässt, aber in diesem Fall ist es ziemlich präzise und relevant. –