Wann initialisiert der „neue' Operator den Speicher auf Null?
Dec 19, 2024 am 12:56 AMOperator Neu und Speicherinitialisierung
Der neue Operator ist allgemein dafür bekannt, Speicher zuzuweisen, ohne ihn zu initialisieren. Ein aktuelles Codebeispiel zeigt jedoch ein Szenario, in dem der Speicher bei der Zuweisung mit „new“ scheinbar auf Null initialisiert wird. Dies wirft Fragen zum tatsächlichen Verhalten des Operators auf.
Der Code:
1 2 3 4 5 6 7 8 9 10 |
|
Ausgaben:
1 2 |
|
Die erste Zuweisung und Initialisierung von wsk2 zum Wert 5 funktioniert wie erwartet. Die zweite Zuweisung und Zuweisung von wsk2 zu einem neuen unsigned int ohne Initialisierer führt jedoch zu einem Wert von 0.
Bei weiterer Untersuchung stellt sich heraus, dass es zwei Versionen des neuen Operators gibt:
- wsk = new unsigned int; // Standardmäßig initialisiert (dh nichts passiert)
- wsk = new unsigned int(); // Null initialisiert (dh auf 0 gesetzt)
Dieses Verhalten gilt auch für Arrays:
- wsa = new unsigned int[5]; // Standardmäßig initialisiert (dh nichts passiert)
- wsa = new unsigned int[5](); // Null initialisiert (d. h. alle Elemente auf 0 gesetzt)
Ein benutzerdefinierter Test mit Platzierung neu bestätigt, dass die Nullinitialisierung tatsächlich erfolgt:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Ausgaben:
1 2 3 4 5 |
|
Dies zeigt, dass der neue Operator die Nullinitialisierung unterstützt, wenn er mit Klammern verwendet wird, trotz des weit verbreiteten Missverständnisses, dass er den Speicher verlässt nicht initialisiert.
Das obige ist der detaillierte Inhalt vonWann initialisiert der „neue' Operator den Speicher auf Null?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert?

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte

GULC: C -Bibliothek von Grund auf neu gebaut

Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die?

Wo ist der Rückgabewert der C -Sprachfunktion im Speicher?

eindeutiger Gebrauch und Phrasenfreigabe

Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)?

Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient?
