在进行 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 关键词分配空间。如:
这样就可以避免出现此类问题了。