赞
踩
https://en.cppreference.com/w/cpp/string/basic_string/c_str
https://sourceforge.net/p/cppcheck/wiki/ListOfChecks/
string的这个成员是返回c类型的一个字符数组指针。但是这个指针所对应的地址有赖于string对象的生命周期。所以如果返回一个函数内的局部string对象的指针,就是危险的。如果是危险的有没有静态代码检查工具可用帮助来检查这种书写的问题。
这里需要注意的一个问题是在gcc的4.8版本是可用隐藏这个问题,但是到了8.5这个版本,就不再隐藏了。所以对生命周期比较长的c++工程来说,这是一个非常大的挑战。因为原来这么错误使用也没有问题,那得有多少处这种错误使用呢?
_CharT*
_M_data() const _GLIBCXX_NOEXCEPT
{
return _M_dataplus._M_p
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。