c笔记——指针错误情况
指针错误情况:
1、空指针
指向不可访问的地址:
{
int *p;
*p = 1;
}
2、野指针
指向未分配空间的地址:
{
int *p;
p = NULL;
*p = 1;
}
指向未知的特定地址
{
char *p = 0x00123456;
*p = 1;
}
3、悬空指针
使用了已经free掉的地址:
{
int *p1 = (int *)malloc(sizeof(int));
*p1 = 1;
printf("p1 = %d\n", *p1);
free(p1);
int *p2 = (int *)malloc(sizeof(int));
*p2 = 2;
printf("p2 = %d\n", *p2);
*p1 = 1;
printf("p2 = %d", *p2);
} //输出为1 2 1
预防方法:在free掉指针后在后面加p=NULL指向空
浙公网安备 33010602011771号