1.iOS里面有一个经常出现的现象,就是崩溃,也就是闪退,90%以上都是内存原因, 1)内存溢出 2)野指针异常 内存大比较难以发现问题,需要程序员对内存管理有比较好的使用习惯。2.内存溢出:超出分配内存访问,5s内存50M;6内存限制80M;6s内存限制130M;3.野指针异常:野外的指针,没有....
分类:
其他好文 时间:
2015-12-15 19:28:46
阅读次数:
160
在项目中遇到各种问题:(1)thread 1:exc_bad_access(code=1,address=0x10)完全不知道错误出现在哪里。错误原因:exc_bad_access(code=1, address=0x789870)野指针错误,主要的原因是,当某个对象被完全释放,也就是retainC...
分类:
移动开发 时间:
2015-12-14 23:15:06
阅读次数:
328
今天用上了Vector.erase()方法,发现很多鬼畜。后来查资料才发现,erase()是删除当前迭代器返回下一个迭代器。如果你仅仅是使用了erase但是没有更新遍历的迭代器就会导致当前迭代器被释放成野指针,成为野指针后再使用++ -- 的操作肯定会出问题。于是你需要将迭代器更新,即iter .....
分类:
其他好文 时间:
2015-12-06 14:24:54
阅读次数:
124
栈: 局部变量:定义在方法或函数内部变量 系统管理 堆:动态存储区 一般由程序猿管理##引用计数如果内存管理不当 1、不再使用对象没有被回收,内存泄露,最终导致程序闪退 2、正在被使用对象被释放了,野指针,访问野指针就会导致程序崩溃 ARC Automatic...
分类:
其他好文 时间:
2015-11-29 19:40:24
阅读次数:
124
目标1.【理解】内存管理2.【掌握】第一个MRC程序3.【掌握】内存管理的原则4.【理解】野指针与僵尸对象5.【理解】单个对象的内存管理6.【理解】多个对象的内存管理7.【掌握】set方法的内存管理8.【掌握】@property参数9.【掌握】@class关键字10.【理解】循环retain一、内存...
分类:
移动开发 时间:
2015-11-25 10:11:58
阅读次数:
338
main(){ //不能使用不同类型的给指针赋值 /* int a = 5; double* p = &a; printf("%d",*p); */ //野指针不可以使用, // int* p ; //...
分类:
编程语言 时间:
2015-11-22 12:27:40
阅读次数:
196
野指针产生的原因: 1,指针变量和他所指向的内存空间变量是两个不同的概念 2,虽然调用free(p)方法释放了指针所指向的内存空间,但是指针变量并没有重置成NULL 3,造成释放了所指向的内存空间之后,使用 if( p != NULL ) 还会被执行,还会执行其中的 free() 方法避免方法...
分类:
其他好文 时间:
2015-11-21 21:11:08
阅读次数:
154
写出本文仅仅是处于备忘的目的。最近为现在做的软件添加了一个内存回收机制(以前处于某种内存只申请不释放,这并不等于内存泄露,因为我们知道这些内存块在内存中的位置)-- 某一个块内存在不使用的时候将其释放掉,以防止内存缓慢增长。由于以前没有释放内存,所以就不存在野指针的问题。于是乎肯定坑爹的事情就从内存...
分类:
编程语言 时间:
2015-11-06 19:26:22
阅读次数:
248
1.指针变量没变被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的默认值是随机的,它会乱指一气。2。指针p被free或者delete之后,没有置为NULL,让人误以为p是个合法的指针。3.指针操作超越了变量的作用范围。这种情况让人防不胜防。
分类:
移动开发 时间:
2015-11-04 09:25:27
阅读次数:
206
一、什么是空指针和野指针1.空指针1> 没有存储任何内存地址的指针就称为空指针(NULL指针)2> 空指针就是被赋值为0的指针,在没有被具体初始化之前,其值为0。下面两个都是空指针:1 Student *s1 = NULL;2 3 Student *s2 = nil;2.野指针"野指针"不是NULL...
分类:
其他好文 时间:
2015-11-02 17:17:35
阅读次数:
220