Kodumu yönetmek için Cppcheck kullanıyorum. Ben aşağıdaki işlevi vardır: Benim için sürprizCppCheck'te bir hata buldunuz mu? Neden "Boş işaretçi dereference" hatası alıyorum?
bool my_function(std::string my_string) const
{
return 0 == my_string.compare("Some text"); // line 3
}
, ben çizgi 3.
yılında KQUEUE Boş işaretçi olsun tamamen karıştı: my işlevinde hiçbir işaretçiler vardır. Neden bu hatayı alıyorum?
Bunu araştırmak için denedim: string boş my_string eğer
kontrol ettim.
bool my_function(std::string my_string) const { std::string str("Some text"); return 0 == my_string.compare(str); // line 3 }
Başka ne yapabilirim:
Not: Ben hata KQUEUE olası Boş pointer hakkında sormuyorum, bu nedenle bu aşağıdaki sorulardan herhangi birinin kopyası değildir: 1, 2 veya 3.
Bana bir hata gibi görünüyor. Kodda yanlış bir şey göremiyorum. –
'i döndürmeyi denediniz mi (0 == my_string.compare ("Bazı metinler")); '? Sadece belki –
Sadece açık olmak gerekirse, kod çökmeden çalışır ancak sadece bu cppecker hata bildiriyor, değil mi? – Arunmu