C++ Array Größe richtig ermitteln?

3 Antworten

Es sind 4er-Schritte, weil die Größe von "int" 4 Bytes ist. Wenn du also ein weiteres Element hinzufügst, fügst du 4 Bytes hinzu.

Wenn du die Anzahl der Elemente in deinem Array ermitteln möchtest, dann kannst du das wie folgt machen:

int numberOfElems = sizeof(array) / sizeof(int);

Du solltest jedoch bedenken, dass der "sizeof"-Operator zur Kompilezeit ausgewertet wird. Wenn du also nur noch einen Zeiger auf dein Array haben solltest, dann kommst du nicht mehr an die Größe ran.

Daher werden häufig verwaltende Klassen wie "std::vector" verwendet, die die Größe zur Laufzeit speichern.

sizeof( myArray ) liefert die Anzahl der Bytes des Arrays. Du solltest so etwas lieber eine Klasse wie Vector benutzen.

Ja. Offensichtlich belegt ein int 4 Byte Speicherplatz.

Die Anzahl der Elemente wird (angeblich) mit size() ermittelt (http://www.cplusplus.com/reference/array/array/size/)

Sonst kannst du immer noch

sizeof(array)/sizeof(array[0]) 

berechnen (nach einem Vorschlag bei stackoverflow)

Woher ich das weiß:Berufserfahrung – Software-Entwickler