In C++ Primer 5. (Kapitel 12),Sind dynamisch allokierte Objekte standardmäßig initialisiert?
standardmäßig dynamisch zugewiesenen Objekte Standard initialisiert sind, was bedeutet, daß Objekte von eingebauten oder Mischungstyp Wert undefiniert;
int *pi = new int; // unitialized int
Diese Aussage zeigt, dass eingebauter Typ Objekt Wert nicht definiert, wenn Standard initialisiert. Das Verhalten des standardmäßigen initialisierten integrierten Objekttyps hängt jedoch davon ab, wo es definiert ist.
Um genau zu sein, muss eingebautes Objekt außerhalb jeder Funktion 0
sein, während das eingebaute Objekt innerhalb eines Blocks einen undefinierten Wert hat.
Daher denke ich, dass die obige Aussage ist nicht korrekt, da für Einbautyp:
Standard initialisiert = undefinierten Wert
Muss ich dies richtig zu verstehen?
Globale VARs und lokale VARs befinden sich nicht im selben Speicher auf dem Gerät, auf dem der Code ausgeführt wird. Lokale dynamisch zugewiesene Variablen befinden sich auf dem Heap, und globale Variablen haben einen getrennten Heap. Aus diesem Grund scheinen sie mit Null initialisiert zu sein, und Locals sind es nicht. Aber das ist nur mit ein wenig Wissen zu erraten. –