无标题文章
2016-06-24 本文已影响0人
孩子keykey
---
##1.内存分区
> * 堆区
> * 栈区
> * 全局(静态)区
> * 文字常量区
> * 程序代码区
###堆区:
* C:
malloc创建,free释放,程序员手动管理
* Objective-C:
所有OC对象都存储在堆区,arc管理
###栈区:
由编译器自动分配和释放,生命周期只在当前作用域
```Objective-C
void func(int a, int b)
{
{
int c = 0;
}
printf("%d\n", c); // 报错
}
```
###全局(静态)区:
* DATA段(全局初始化区)
* BSS段(全局未初始化区),BSS段会自动清零,每一个字节都为00000000
```Objective-C
//hello.m文件
int a = 1; //存放在DATA段
static int b; //存放在BSS段
char str[10];
int main(int argc, char *argv[]) {
}
```
###文字常量区:
存放C风格常量字符串,见代码
###程序代码区:
存放函数的二进制代码
##2.instruments工具检测内存泄露
##3.关于面向对象与设计模式
##4.一些网站
http://objccn.io
http://blog.devtang.com/blog/archives/