空悬指针和野指针
来源:互联网 发布:淘宝欢乐逛如何使用 编辑:程序博客网 时间:2024/06/05 16:19
空悬指针
dangling pointer,指向已经销毁的对象或已经回收的地址。以下情况可能出现空悬指针:
情况1
{
char *dp = NULL;
{
char c;
dp = &c;
}
//变量c释放,dp变成空悬指针
}
情况2
#include <stdlib.h>
void func()
{
char *dp = (char *)malloc(A_CONST);
free(dp); //dp变成一个空悬指针
dp = NULL; //dp不再是空悬指针
/* ... */
}
上述例子提醒我们,当free或者delete调用时,除了释放动态申请的内存,还要将相关的指针指向NULL,避免出现空悬指针。
情况3
int * func ( void )
{
int num = 1234;
/* ... */
return #
}
num是基于栈的变量,当func函数返回,变量的空间将被回收,此时获得的指针指向的空间有可能被覆盖。
野指针
没有初始化的指针就是野指针,一般情况下,编译器会进行警告。
int func()
{
char *dp;//野指针,没有初始化
static char *sdp;//非野指针,因为静态变量会默认初始化为0
}
阅读全文
0 0
- 空悬指针和野指针
- 空悬指针和野指针
- 野指针和空指针
- 空指针和野指针
- 空指针和野指针
- 野指针和空指针
- 空指针和野指针
- 空指针和野指针
- 空指针和野指针
- 野指针和空指针
- 野指针和空指针
- 野指针、空指针和通用指针
- 07-空指针和野指针
- 空指针和野指针的区别
- oc-空指针和野指针
- 【Objective-C】空指针和野指针
- IOS的空指针和野指针
- C++中的空指针和野指针
- 【Redis深入】配置文件详解
- 老年(已退役)选手复习计划 PART1
- 1002. 写出这个数 (20)
- 手机上拉刷新 angular
- linux curses函数库
- 空悬指针和野指针
- PathEffect,使用mPaint.setPathEffect为path路径设置不同的效果
- zeromq+python安装手册
- 模块句柄(实例句柄)和句柄的区别
- 静态函数和非静态函数的区别(静态方法和非静态方法)
- 大数据平台的发展会降低程序员的价值吗?
- POJ 3199 Uncle Jack(高精度加速乘)
- 递归建立二叉树
- 解决textarea默认鼠标不是从左上角开始的问题