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 😉 .


Anmelden zum Antworten