[英]why will the following error occur during compilation
作為程序的一部分,我使用了以下代碼:
///////////////
98:::printf("%d",abc->stv)
//////////////
100::if(abc)
//////////////
(產生了以下錯誤)
Possible null pointer dereference: abc - otherwise it is redundant to check if abc is null at line 100
if (abc)
測試abc
是否為空指針。
編譯器警告您,您已經假定abc
不是空指針(通過在第98行對其進行解引用),這意味着
if (abc)
測試是多余的(因為它永遠不會為真)或 abc
的取消引用可能不正確,因為abc
實際上可能為null。 如果測試abc
,則對編譯器意味着它可能為null。 因此,像abc->stv
那樣取消引用指針是可能的錯誤。 一種解決方案是將printf
代碼包含在if
塊內:
if(abc)
{
printf("%d",abc->stv)
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.