Arraygröße in C bestimmen?

  • Themenstarter Themenstarter di-five
  • Beginndatum Beginndatum
D

di-five

Hallo,

ich bin es wieder. Und zwar möchte ich die Größe eines angelegten Arrays ermitteln.

Hier im Forum habe ich folgenden Code dazu gefunden:

C:
int main()
{
    int gz[20];
    
    printf("%i", sizeof(gz) / sizeof(int));
    
    return 0;
}
http://www.tutorials.de/forum/c-c/235498-newbie-array-laenge-bestimmen.html

Warum muss ich sizeof(gz) durch sizeof(int) teilen, damit da 20 rauskommt?

Wenn ich nur sizeof(gz) schreibe kommt 80 raus. Wieso teilt der das durch vier?

Gruß di-five
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

sizeof() ermittelt die gesamte Speichernutzung. 20 Elemente mit je 4 Byte ergeben dann 80. Was du haben willst, ist die Anzahl der Elemente im Array. Deshalb musst du den Gesamtspeicher durch den Speicherbedarf pro Element teilen.

Gruß
MCoder
 
Jaa,

das ist dann wahrscheinlich auch noch genau so, weil es ein Integer-Array ist, vielen Dank!

Gruß di-five
 
Zurück