C - char Array 'default'-Werte
-
Hallo,
in diesem Thema https://www.c-plusplus.net/forum/topic/352211/c-cmd-txt-datei-als-eingabe-in-ein-programm-umleiten/7habe ich ein programm geschrieben das werte in ein char Array einliest
Uns wurde eig gesagt, das
wenn man ein char Array deklariert
char A [13] ;
das überall 0 drin steht. Ich sehe bei mir aber dennoch andere Werte die ich nicht selbst reingeschrieben habe..
Danke,
James
-
ne also beim ausprobieren sieht man es ist nicht so, vlt habe ich geirrt und es wurde für globale Variablen so gesagt
-
Ja, das gilt nur für globale Variablen (sowie
static
in Funktionen).
Lokale Variablen bleiben uninitialisiert und haben somit zufällige Werte (je nachdem, was dort im Stack steht).
-
@JamesNguyen sagte in C - char Array 'default'-Werte:
Uns wurde eig gesagt, das
wenn man ein char Array deklariert
char A [13] ;
das überall 0 drin steht.Zunächst ist das eine Definition (mit implizierter Deklaration)
Bei einer Definition wird Speicher verbraucht (hier 13 Byte), eine Deklaration ist nur eine Information über eine Variable/Funktion.Man kann auch Arrays bei der Definition gleich Initialisieren (mit Werten vorbesetzen)
Wenn man Arrays nur teilweise initialisiert, wird der Rest des Arrays mit 0 (Null) aufgefüllt.
Ein
char A [13] = "";
würde zunächst nur eine '\0' für den Leerstring enthalten, der Rest wird aber auch aufgefüllt.