繁体   English   中英

我在CppCheck中发现错误了吗? 为什么在这里出现“空指针取消引用”错误?

[英]Did I find a bug in CppCheck? Why do I get the “Null pointer dereference” error here?

我正在使用Cppcheck来管理我的代码。 我有以下功能:

bool my_function(std::string my_string) const
{
 return 0 == my_string.compare("Some text");  // line 3
}

令我惊讶的是,在第3行中得到了Null指针取消引用

我完全感到困惑:我的函数中没有指针。 为什么会出现此错误?

我试着调查一下:

  1. 我检查了字符串my_string是否为空。

  2. 我使用“我的文本”创建了一个对象,以确保Cppcheck不会抱怨使用临时对象:

     bool my_function(std::string my_string) const { std::string str("Some text"); return 0 == my_string.compare(str); // line 3 } 

我还可以做些什么? 是Cppcheck中的错误吗? 比较功能本身有问题吗? 如果是这种情况,我会感到惊讶,因为cppcheck不会抱怨我的项目中使用的任何其他std函数。

注:我不要求有关可能空指针引用错误,所以这不是任何的下列问题重复: 123

我是Cppcheck开发人员。

看起来像Cppcheck中的错误。 但是,我无法重现这种误报。 如果您不使用最新的Cppcheck,请更新。 否则,请在cppcheck错误跟踪器中报告此情况: http : //trac.cppcheck.net

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM