9
我使用Cppcheck來管理我的代碼。我有以下功能:我在CppCheck中發現了一個錯誤嗎?爲什麼我在這裏得到「空指針解除引用」錯誤?
bool my_function(std::string my_string) const
{
return 0 == my_string.compare("Some text"); // line 3
}
令我驚訝的是,我得到的空指針在該行3
我完全糊塗了:有我在功能上沒有指針。爲什麼我會得到這個錯誤?
我試圖對其進行調查:
我檢查,如果字符串my_string是空的。
我創建使用「我的文字」確保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函數。
注:我不要求有關可能的空指針引用錯誤,所以這不是任何的下列問題重複:1,2或3。
對我來說看起來像一個bug。我沒有看到代碼錯誤。 –
你試過'return(0 == my_string.compare(「Some text」));'?只是可能 –
只是要清楚,代碼的工作原理沒有崩潰,但它只是cppcheck報告錯誤,對吧? – Arunmu