无标题文章

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/

上一篇下一篇

猜你喜欢

热点阅读