一、什么是空指针和野指针1.空指针1> 没有存储任何内存地址的指针就称为空指针(NULL指针)2> 空指针就是被赋值为0的指针,在没有被具体初始化之前,其值为0。下面两个都是空指针:1 Student *s1 = NULL;23 Student *s2 = nil;复制代码2.野指针"野指针"不是N...
分类:
其他好文 时间:
2015-06-30 14:28:17
阅读次数:
97
retainCount//dealloc方法,是对象的临终遗言的方法//对象被销毁的时候,会默认的调用该方法//注意:dealloc 方法是系统根据引用计数器的值,自动调用的,野指针内存泄露@property参数@class 使用循环retain解决方法自动释放池@autoreleasepool
分类:
移动开发 时间:
2015-06-23 14:58:56
阅读次数:
178
确保容器中的对象拷贝正确而高效在使用STL模板的时候,我们必须想到有关拷贝的问题。如果STL中存储的是我们自定义类型。可能会发生以下几个问题:首先为了避免拷贝过程成为程序运转的瓶颈,我们选择存储自定义的指针。但是,这里容易出现野指针的问题,所以我们需要使用智能指针shared_pre来避免。接着如果存储类型为基类,此时我们存储派生类,则会发生截断现象,即只copy了基类部分,而派生类部分丢失。最后相...
分类:
其他好文 时间:
2015-06-21 22:29:34
阅读次数:
197
1. 空指针、NULL指针、零指针
1.1什么是空指针常量
0、0L、'\0'、3 - 3、0 * 17 (它们都是“integer constant expression”)以及 (void*)0 (我觉得(void*)0应该算是一个空指针吧,更恰当一点)等都是空指针常量(注意 (char*) 0 不叫空指针常量,只是一个空指针值)。至于系统选取哪种形式作为空指针常量使用,则是实现相...
分类:
其他好文 时间:
2015-06-21 13:11:51
阅读次数:
106
本文主要介绍如何利用OC Runtime的特性,让OC野指针对象主动抛出自己的信息,秒杀某些全系统栈Crash。
陈其锋,腾讯SNG即通产品部音视频技术中心软件工程师,主要负责iOS平台音视频功能开发,热衷于移动开发,以及各类APP体验。
(注:本文由于涉及一些技术比较猥琐,可能会引起处女座同学的不适,如果有任何疑问欢迎一起讨论。另外,本文只讨论Arm 32位情况)
...
分类:
其他好文 时间:
2015-06-18 11:33:38
阅读次数:
453
一、声明int *p ; // ( int * )( p )二、野指针—-避免方法1)指针变量一定要初始化为NULL,因为任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的。
2)当指针p指向的内存空间释放时,没有设置指针p的值为NULL。delete和free只是把内存空间释放了,但是并没有将指针p的值赋为NULL。通常判断一个指针是否合法,都是使用if语句测试该指针...
分类:
编程语言 时间:
2015-06-17 16:41:09
阅读次数:
149
所谓内存泄露,其实就是对象在该被回收的时候并没有被正确回收,内存里游走着这些野指针。所以理解这几种引用方式很重要,借大神的博客一用。转载:http://blog.csdn.net/mazhimazh/article/details/19752475引用类型被垃圾回收时间 用途 生存时间强引用从来不会...
分类:
编程语言 时间:
2015-06-09 19:48:59
阅读次数:
139
iOS应?程序出现Crash(闪退),90%以上的原因是内存问题。在一个拥有数十个甚?至是上百个类的?程里,查找内存问题极其困难。了解内存常?问题,能帮我们减少出错几率。 内存问题体现在两个方面:内存溢出、野指针异常。 1、野指针异常内存管理的方式引用计数影响引用计数的方法有 +alloc -ret...
分类:
其他好文 时间:
2015-05-22 20:58:20
阅读次数:
157
野指针malloc()分配内存;free()释放内存;p=(char*)malloc(100);#include #include int main(void){ int*p; p=(int*)malloc(1);//动态分配内存 if(p==NULL) { printf("内存分配失败。"); ....
分类:
编程语言 时间:
2015-05-15 17:26:28
阅读次数:
150
浅拷贝就是对内存地址的复制,让目标对象指针和源对象指向同一片内存空间。浅拷贝只是对对象的简单拷贝,让几个对象共用一片内存,当内存销毁的时候,指向这片内存的几个指针需要重新定义才可以使用,要不然会成为野指针。深拷贝是指拷贝对象的具体内容,而内存地址是自主分配的,拷贝结束之后,两个对象虽然存的值是相同的...
分类:
其他好文 时间:
2015-05-14 13:53:30
阅读次数:
116