最近看到一个问题,问题实际是在项目中类的成员变量中遇到的,简化如下
#include <iostream>
#include <string>
int main()
{
std:: string s = nullptr;
std::cout << "nihao" << std::endl;
return 0;
}
以上代码在项目能正常编译通过,但运行的时候直接崩溃。
因为之前自己从来没有用nullptr 初始化string 的,看到这里记录下,防止别人入坑。
原因:string不能和nullptr 比较,但可以和""空串比较,可使用s.empty()函数, s.length() == 0 。
建议用下面的初始化
std::string s;
std::string s = "";