//野指针。就是没有指向具体地址的指针
/*
已经被销毁的对象(不能再使用的对象)
野指针
指向僵尸对象(不可用内存)的指针
给野指针发消息会报EXC_BAD_ACCESS/EXC_BREAKPOINT错误(message sent to deallocated instance 0x100100350)
空指针
没有指向存储空间的指针(里面存的是nil,
也就是0)
给空指针发消息是没有任何反应的,不会提示出错!
为了避免野指针错误的常见办法
1.在对象被销毁之后,
将指向对象的指针变为空指针(p=nil)
2.在初始化变量时初值为null
*/
#import <Foundation/Foundation.h>
int main(int argc,
const
char * argv[]) {
@autoreleasepool {
//第一种野指针情况
int * p =
malloc(40);
p[0] =
123;
for (int
i = 0; i<1000; i++) {
int * temp =
calloc(4,
10);
free(temp);
}
//第二种情况:在main()函数中如果为main(void)
的话,定义变量不初始化变量里就是垃圾数。如果定义一个指针,那么,这个指针指向哪里也是不知道的,也是野指针。
NSLog(@"%d",p[0]);
}
return
0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-12-05 23:23:24