Arrayy Initialisieren

#794987
Lesenswert?

Oder falls es eine lokale Variable ist:

int a[100] = {0};
// oder sogar, wenn man tippfaul ist
int a[100] = {};

Das funktioniert, weil nicht-initialisierte Array-Eintraege automatisch 
mit 0 initialisiert werden, sofern in der Deklaration irgendeine 
Initialisierung angegeben ist. Bei

int a[100];

werden die Eintraege also nicht mit 0 intialisiert.
Gast #795146
Lesenswert?

> stimmt, wird aber zur laufzeit gemacht
> static int wird dafür executable aufblähen

Nein, das wird auch zur Laufzeit gemacht. Statische Variablen, die nicht 
oder mit 0 initialisiert werden, landen im Segment .BSS, das vom 
Startup-Code vor main() "ausgenullt" wird.
Gast #796168
Lesenswert?

man lernt nie aus^^
allerdings wenn ich richtig weiss reden wir "wie es gcc" macht
ich glaub kaum, dass C stdandard je soweit gehen würde über
segmente zu reden. (oder auch stack)

schöne grüsse, daniel
Gast #796342
Lesenswert?

> allerdings wenn ich richtig weiss reden wir "wie es gcc" macht

Naja, wir sind in einem GCC-Forum.

> ich glaub kaum, dass C stdandard je soweit gehen würde über
> segmente zu reden. (oder auch stack)

Dann glaubst du richtig. Wie die Null-Initialisierung durchgeführt wird, 
bleibt natürlich voll und ganz dem Compiler überlassen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren