问题及现象此前,调试cocos2d-x+CocoStudio游戏程序过程中遇到一个运行时错误。通过调用堆栈来看,错误指针停在~CCNodeRGBA()。分析1CCNodeRGBA是一个继承自CCNode的子类,其主要是增加了与结点透明度相关的属性控制功能。classCC_DLLCCNodeRGBA:publicCCNode,publicCCRGBAProt..
分类:
其他好文 时间:
2014-09-11 09:44:12
阅读次数:
166
在计算机编程领域中,迷途指针,或称悬空指针、野指针,指的是不指向任何合法的对象的指针。当所指向的对象被释放或者收回,但是对该指针没有作任何的修改,以至于该指针仍旧指向已经回收的内存地址,此情况下该指针便称迷途指针。若操作系统将这部分已经释放的内存重新分配给另外一个进程,而原来的程序重新引用现在的迷途...
分类:
其他好文 时间:
2014-09-09 19:57:39
阅读次数:
260
HighLight:1. Pointer 1). 用法 2). 指针参数 3). 野指针 4). 指针返回值 5). 指针加减整数 6). 数组和指针 7). const指针和指针const2. StringPointer1. Basic 多字节的数据,将其首字节地...
分类:
其他好文 时间:
2014-09-04 18:52:49
阅读次数:
151
1、野指针: 声明一个指针(例如 int *p;),编译器会随机分配一个内存地址给它,但是,此地址不可用(如 cout<<p; 此句会出现运行时错误,见图1,但是编译会通过)。当然,在声明时初始化才是好习惯(如 int *p = NULL;),这也是避免野指针的方法。2、迷途指针: int *p =...
分类:
其他好文 时间:
2014-08-31 15:45:31
阅读次数:
247
内存管理常见错误
没有改为自动管理内存
解决方法:
野指针问题
[Person retainCount]: message sent to deallocated instance 0x1002032d0 消息发送给一个已经回收的对象
野指针异常现象:可能会崩溃,也可能不会崩溃,写到某一行代码时突然崩溃(没有写任何和引用计数相关的...
分类:
其他好文 时间:
2014-08-27 14:50:58
阅读次数:
194
过渡释放
现象:当写完和内存引用计数-1有关的操作后,程序立即crash.
原因:空间被系统回收之后,不能再做和引用计数-1有关的操作,否则立即crash
解决方案:删除
当引用计数为零时,系统会自动回收内存,我们只管理引用计数.
野指针异常:
现象:可能会崩溃,也可能不会崩溃,写到某一行代码时突然崩溃.(没有写任何和引用计数相关的代码);
产...
分类:
其他好文 时间:
2014-08-20 10:34:48
阅读次数:
253
- (void)setName:(NSString *)name
{
判断原有对象和新对象是否是同一个对象,如果是同一个,就没有必要再重新赋值,否则会先release 再retain,就会变成野指针
if (_name !=
name) {
释放保有之前对象的所有权
[_name rele...
分类:
其他好文 时间:
2014-08-18 23:37:03
阅读次数:
257
最近项目开发中,临时被调去修复一个页面返回时crash的问题。出现这个问题的原因也很巧合,正好服务地址在同事电脑上,也正巧网络请求响应时间狂慢!一个请求发出去回来的时间是40秒左右,要是在线上,肯定会让用户抓狂死! 当我打开项目的时候,点击页面返回时,发现网络请求依然在请求中,第一感觉就是内存...
分类:
其他好文 时间:
2014-08-16 11:00:30
阅读次数:
191
一、什么是空指针和野指针1.空指针1> 没有存储任何内存地址的指针就称为空指针(NULL指针)2> 空指针就是被赋值为0的指针,在没有被具体初始化之前,其值为0。下面两个都是空指针:1 Student *s1 = NULL;2 3 Student *s2 = nil;2.野指针"野指针"不是NULL...
分类:
其他好文 时间:
2014-08-12 16:57:14
阅读次数:
223
手动内存管理(MRC)带来的问题: 1.0 由于开发者疏漏或不能正确的释放内存而导致的内存泄漏,从而引起程序的崩溃 2.0由于指针的到处传递而无法确定何时可以释放该指针所 指向的内存块。假如代码中某个位置释放了内存,而另一些地方还在使用指向这块内存的指针, 那么这些指针就变成了所谓的“野指针”(.....
分类:
其他好文 时间:
2014-08-10 18:18:20
阅读次数:
192