next up previous contents
Next: static Up: Lebensdauer und Lage der Previous: Lebensdauer und Lage der

auto

Falls keine weitere Angabe erfolgt, sind Variablen automatic. Dies bedeutet, daß sie angelegt werden, sobald das Programm über die Zeile läuft, in der sie deklarariert sind. Sobald das Programm den Block verlässt, in dem sie deklariert sind, wird der zugehörige Speicher wieder freigegeben. Der Block ist im allgemeinen das innerste die Variable umschließende Paar geschweifter Klammern, oder wie im Fall der in den ()-Bereichen von Anweisungen wie for(;;) deklarierten Variablen, das Ende dieser Anweisung. In diesem Fall wird der Speicherplatz freigegeben, sobald diese Anweisung vollständig abgearbeitet ist. Variablen dieser Art werden vom Compiler meist im sogennanten Stack-Bereich des Programmes angelegt.
Der Inhalt einer solchen Variable ist zufällig, wenn sie nicht explizit im Programm initialisiert wurde. Da dies zu subtilen Fehlern führen kann, sollte man solche Variablen immer entweder durch eine explizite Initialisierung auf einen passenden Wert setzen oder möglichst unmittelbar vor der ersten Verwendung deklarieren (so daß sichtbar ist, daß die Variable angemessen - z.B. in einer Eingabe - verwendet wird).



© R.Hilfer et al., ICA-1, Univ. Stuttgart
28.6.2002