Fehler in der STL-Klasse std::basic_string ?!
-
Schönen Guten N' Abend zusammen,
Mir ist gerade beiläufig aufgefallen, dass folgender kleiner Code zu einem Laufzeitfehler (Zugriffverletzung) führt:
#include <string> // ... std::string str(static_cast<const char*>(NULL));Glaube es liegt daran, dass der übergebene Parameter nicht auf NULL geprüft wird, sondern direkt der Funktion strlen/lstrlen (je nach Implementierung/Compiler) übergeben wird.
Hab das jetzt mit dem Compiler Microsoft Visual C++ 2005 Express Edition gestestet. Ist das normal ? Sowas sollte doch eigentlich nicht passieren
.Danke schonmal für Antworten
.
-
CodeFinder schrieb:
Ist das normal ? Sowas sollte doch eigentlich nicht passieren
.Der Standard sagt, dass du da keinen Nullzeiger angeben darfst.
-
Oh, ... ok dank Dir!
Aber doch irgendwie Schwachsinn, da hätte man doch ne Prüfung mit einbauen können ...naja, ist ja auch Rille
.