值为0 的指针叫 空指针。int *p = 0;当指针为空时,不能使用“*”号操作int * p = 0;printf("%d\n",*p);程序执行出错。但空指针是程序员可以接受的一种情况,只需要加一个 if 判断就能解决! if ( p ) pintf("%d \n", *p );
分类:
其他好文 时间:
2015-10-31 17:04:29
阅读次数:
217
当初遇到这个bug,是不定期的低概率出现,最后找到一个比较容易重现的步骤:启动系统然后进google + 新建一个帐号(注意是新建一个帐号)没几步就重启了这个BUG,一开始追踪也是无头绪的,在这个bug出现时,系统的debuggerd还是有些问题,pt_regs设置的和内核对应不上,tombston...
分类:
移动开发 时间:
2015-10-31 11:23:23
阅读次数:
267
在定义delegate对象的时候,我们经常看到可以使用weak 和 assign 但是到底哪个使用更合适呢?首先:使用assign,声明的对象即使对象销毁了,但是指针依然存在,这样造成声明的对象变成了野指针,这样导致内存泄露。而使用 weak ,当对象销毁时,即将delegate = nil,这样不...
分类:
移动开发 时间:
2015-10-27 13:03:25
阅读次数:
206
1. 空指针2. 野指针3. 数组越界4. 整数除以零5. 格式化输出参数错误6、缓冲区溢出7、主动抛出异常Android上的Crash可以分两种:1、Java Crash java代码导致jvm退出,弹出“程序已经崩溃”的对话框,最终用户点击关闭后进程退出。Logcat 会在“AndroidRun...
分类:
移动开发 时间:
2015-10-23 13:18:10
阅读次数:
466
空指针是一个特殊的指针值,也是唯一一个对任何指针类型都合法的指针值。指针变量具有空指针值,表示它当时处于闲置状态,没有指向有意义的东西。空指针用0表示,C语言保证这个值不会是任何对象的地址。给指针值赋零则使它不再指向任何有意义的东西。为了提高程序的可读性,标准库定义了一个与0等价的符号常量NULL....
分类:
其他好文 时间:
2015-10-11 22:48:42
阅读次数:
197
#define _CRT_SECURE_NO_WARNINGS#include#include#include//野指针产生的原因//指针变量和它所指的内存空间变量是两个不同的概念//释放了指针所指的内存空间,但是指针本身没有重置成null//造成释放的时候 通过if(p1!=NULL)//避免方法...
分类:
其他好文 时间:
2015-10-05 16:55:10
阅读次数:
174
#include #include int main(void){ //char dest[10]; //#define NULL (void *)0 //char *dest = NULL; //dest是野指针,指向的区域没有可读写空间 //char...
分类:
其他好文 时间:
2015-09-20 22:09:51
阅读次数:
194
1.JSONKit 项目在xcode7 IOS9 开发环境上报错,不能进行JSONSring和JSONData的使用 。在真机上没有问题,在模拟器上put和post数据适合JSONKit报空对象野指针的错误。JSONData //没有修改 NSData * jsonData = [[record.....
分类:
移动开发 时间:
2015-09-18 15:23:51
阅读次数:
168
———————————————————————————————————————————
多个对象内存管理(野指针&内存泄漏)
(注:这一部分知识请结合“单个对象内存管理”去理解)
这一部分的知识比较简单,就牵扯到一个会产生野指针的情形和如何避免内存泄漏问题。
代码:
#import
@interface Car : NSObject
-(void)run...
分类:
其他好文 时间:
2015-08-30 11:28:41
阅读次数:
194
1.
/*
二维数组和指针
*/
int main()
{
// int *p[3];//p是个指针的数组,3个元素,p[0],p[1],p[2],元素是 int *,指向int的指针;三个指针是相互独立的;如果没有初始化,都是野指针;
int a[2][3] = {{1,2,3},{4,5,6}};
//a由两个行数组构成,a[0],a[1];每个数...
分类:
编程语言 时间:
2015-08-30 11:26:20
阅读次数:
202