在進行 TAU G2 編程時經常會遇到下面的錯誤信息:
*************************** ERROR **************************
Dereferencing of NULL pointer.
Pointer assigned new data area at address .
? 有必要詳細說明一下。
? 一般出現這個問題,都是在訪問一個類或結構的變量時出現的,例如下面是程序的片段。
在這個程序中,訪問 D_attach_detach_group_identity_type 、 Group_identity_downlink_type 和 Group_identity_downlinks_type 這三個變量的成員時都會報告錯誤。雖然可以忽略這個錯誤繼續運行,但是如果這個錯誤很多,卻是非常麻煩。為什么會出現這個錯誤呢 ?
? 最主要的原因是在 TAU G2 中,類或結構體變量都是看作指針的,如果在 WATCH 窗口看這些變量,在訪問變量前,它們都是 null ,而在賦值之后會顯示變量的地址,這和 C 語言對指針變量的處理基本相同。所以在給這些變量第 1 次賦值的時候就會報告訪問空指針。如果想避免這個問題,就應該在賦值前先使用new 關鍵詞分配空間。如:
這樣就可以避免出現此類問題了。