如何避免错误:在抛出'std :: logic_error'的实例后调用terminate what():basic_string :: _ S_construct null无效

Czo*_*zon 17 c++ libstdc++

if(player!=NULL)
    player->shuffled();
Run Code Online (Sandbox Code Playgroud)

我这样做是为了避免将null引用传递给字符串构造函数,但是在编译时仍然会出错.

Dav*_*e S 64

在某个地方,不知何故,你正在std::string使用const char*NULL值调用构造函数.

避免这个问题.不要那样做.

  • "医生,当我这么做的时候很疼." "不要_do_那个." (49认同)
  • 并且如何避免错误的答案是"不构造带NULL的字符串" (3认同)
  • 阅读编译器和运行时错误本身就是一种艺术,感谢翻译. (2认同)
  • 当没有给出参数时,我尝试使用“string cmd = argv[1]”,非常聪明。 (2认同)