c++ std::string初始化为nullptr的问题
在c++ std::string或者std::wstring中是否可以使用nullptr初始化,首先可以说的是是可以用nullptr初始化的,但是程序编译没有问题,运行起来就挂了,char*是可以初始化为nullptr的,为啥以char*为基础的std::string不能以nullptr初始化。
·
一.问题描述
在c++ std::string或者std::wstring 中是否可以使用nullptr初始化,首先可以说的是是可以用nullptr初始化的,但是程序编译没有问题,运行起来就挂了,char*是可以初始化为nullptr的,为啥以char*为基础的std::string不能以nullptr初始化
二.问题研究
调试一下代码发现最终是在std::strlen里面挂了,该函数会测量指针对应的内存数据大小,nullptr访问权限出错,如下




size_t __cdecl strlen
(
_In_z_ char const* _Str
);
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)