Uninitialisierte
Uninitialisierte bezeichnet in der Programmierung Speicherbereiche oder Variablen, die zum Zeitpunkt ihres Gebrauchs keinen definierten Wert besitzen. In Sprachen wie C und C++ kann das Lesen aus uninitialisiertem Speicher undefiniertes Verhalten erzeugen, was zu Abstürzen, falschen Berechnungen oder Sicherheitslücken führen kann. In vielen Hochsprachen ist das Risiko geringer: lokale Variablen müssen vor der Nutzung initialisiert werden; Felder erhalten Standardwerte, und der Compiler verhindert häufig uninitialisierte Zugriffe.
Ursachen sind fehlerhafte Initialisierungen, komplexe Kontrollflüsse, vergessene Zuweisungen oder manuelle Speicherverwaltung. Typische Folgen sind schwer reproduzierbare
Beispiele: In C/C++ könnte eine int x; ohne Wert beim Zugriff einen zufälligen Wert liefern. In Rust
Verhinderung: Initialisierung bei der Deklaration, Verwendung von Initialwerten oder Aggregate-Initialisierung; Aktivieren von Warnungen und Sanitizern (UBSan,
Historischer Kontext: Das Konzept war eine frühe Quelle für undefiniertes Verhalten in C-Programmen und bleibt eine