一、野指针
首先,我们先介绍下什么是野指针吧,野指针指指向一个已删除的对象或未申请访问受限内存区域的指针。与空指针不同,野指针无法通过简单地判断是否为 NULL 避免,
<pre name="code" class="cpp">{
int *p; //野指针1
...
}
2.指针释放之后未置空
有时指针在free或delect后未赋值 NULL,便会使人以为是合法的。别看free和delete的名字(尤其是delete),它们只是把指针所指的内存给释放掉,但并没有把指针本身干掉。此时指针指向的就是“垃圾”内存。释放后的指针应立即将指针置为NULL,防止产生“野指针”。
<span style="font-size:18px;">main()
{
char *p = new char[10];
delete [] p; //野指针2
if (p !=null)

本文讨论了C语言中防止野指针的一些常见问题,包括指针释放后未置空、指针操作超出变量作用域。建议指针变量初始化为NULL,释放内存后设为NULL,并避免返回已消亡的指针,以确保程序的稳定性和可维护性。
最低0.47元/天 解锁文章
1080

被折叠的 条评论
为什么被折叠?



