怎么判断一个指针是否为野指针?
这类似错误真是防不胜防啊
[解决办法]
这个。。。。
怎么避免出现野指针就知道
free或delete之后设置NULL
用C/C++的程序员只能说要细心了
[解决办法]
这是使用指针需要注意的地方
[解决办法]
这个只能是靠良好的编程习惯尽量预防出现野指针的情况,未雨绸缪而不是亡羊补牢。
对应特定编译器在一定情况下,是可以判断是否为野指针的,但以现在c++标准是不可能有一个统一的判断方式。
[解决办法]
这个要靠自己的经验了,平时在使用指针的时候就要注意这一点
[解决办法]
无法判断,一般的做法是把malloc和free包装以后使用,再加入适当的调试代码。可以参考:编写无错的C程序的秘诀的电子版。比如:free(p)包装一个函数:
void Free(void *p) {
if (p != NULL) {
free(p);
p = NULL;
}
}
至于malloc,一般的做法是分配size个字节的内存时,多分配一个调试用的结构体,然后把这些结构体做成链表,可以通过查看这个链表找到野指针。
[解决办法]
不容判断啊,野指针指向是不定的。
最好在free或者是delete后,把指针置为NULL
[解决办法]