一.问题描述

在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
);

Logo

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

更多推荐