use*_*748 10 c++ pointers static-code-analysis cppcheck
我正在使用Cppcheck来管理我的代码.我有以下功能:
bool my_function(std::string my_string) const
{
return 0 == my_string.compare("Some text"); // line 3
}
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,我在第3行得到了Null指针取消引用.
我完全感到困惑:我的功能中没有指针.为什么我会收到此错误?
我试过调查一下:
我检查了字符串my_string是否为空.
我使用"我的文本"创建了一个对象,以确保Cppcheck不会抱怨使用临时对象:
bool my_function(std::string my_string) const
{
std::string str("Some text");
return 0 == my_string.compare(str); // line 3
}
Run Code Online (Sandbox Code Playgroud)我还可以做些什么?是Cppcheck中的错误吗?比较功能本身有问题吗?如果是这种情况我会感到惊讶,因为cppcheck不会抱怨我的项目中使用的任何其他std函数.
我是Cppcheck开发人员.
它看起来像是Cppcheck中的一个错误.但是,我无法重现这种误报.如果您不使用最新的Cppcheck,请更新.否则请在cppcheck bug跟踪器中报告:http://trac.cppcheck.net