9
Cppcheck을 사용하여 코드를 관리하고 있습니다. 나는 다음과 같은 기능이 있습니다 놀랍게도CppCheck에서 버그를 발견 했습니까? 왜 여기에 "Null 포인터 역 참조"오류가 발생합니까?
bool my_function(std::string my_string) const
{
return 0 == my_string.compare("Some text"); // line 3
}
를, 내가 선 3.
에 역 참조 널 포인터를 얻을 나는 완전히 혼란 스러워요 : 내 기능에는 포인터가 없습니다. 이 오류가 발생하는 이유는 무엇입니까?
나는 그것을 조사하기 위해 시도했다 : 문자열 이가 비어 my_string 경우
내가 확인.
bool my_function(std::string my_string) const { std::string str("Some text"); return 0 == my_string.compare(str); // line 3 }
내가 다른 무엇을 할 수 :
참고 : 나는 오류 역 참조 가능한 널 포인터에 대해 물어 아니에요, 그래서 이것은 다음 질문 중 어느 중복되지 않습니다 : 1, 2 또는 3.
나에게 버그처럼 보입니다. 나는 코드에 아무런 문제가 없음을 본다. –
'return (0 == my_string.compare ("Some text"));'시도 했습니까? 그냥 어쩌면 –
그냥 분명히, 코드가 작동하지 않고 작동하지만 그 cppcheck가 오류를보고하는 것입니까? – Arunmu