簡體   English   中英

如何檢查 C 中指針的值

[英]How to check value of a pointer in C

我正在編寫一個程序,其中指向我正在使用的STR類型結構的指針STR *pt (基本上是我想要使用動態內存的STR結構數組)可能需要一個NULL值,因為有時我不想存儲任何數組都通過它,所以當我在該指針上使用free(pt)時,我會遇到分段錯誤。 我想要檢查指針是否具有NULL值,但是當我檢查if(pt;= NULL) free(pt); (當指針不是NULL ),條件始終為真,嘗試釋放指針並發生分段錯誤。

有沒有辦法解決這個問題? 另一種比較指針值的方法?

您的支票看起來正確; 如果將非空指針傳遞給堆分配的結構,則 free() 不應失敗。

'pt' 的值從何而來? 你是從 malloc() 得到的嗎?

如果您還沒有,那么可能值得使用 GDB 來驗證 NULL 指針確實會導致您的問題。

您只能在由 malloc、calloc 或 realloc 分配的 memory 上使用 free()。首先您必須為其分配一些 memory 然后檢查

if(pt)
{
    free(pt)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM