1.什么是一个进程?
(编译器)源代码-->(预处理器和编译器)目标程序-->(链接)可执行文件-->(运行)进程
2进程空间有几大区域,各区域分别是什么?每个区域储存什么?
进程有4个区域,分别是代码区,全局区,栈区,堆区。
代码区:源程序代码,常量。
全局区:全局变量,static修饰的局部变量。
栈区:局部变量,形参。
堆区:程序员自己开辟的空间,由malloc开辟空间,free释放,如果程序员只是开辟空间而不对空间释放的话,就会造成内存泄漏。
3.这几个空间的内存分配大概的比例是多少?
举一个例子,比如,我们有8GB内存,操作系统占了4GB,剩下的4GB里面 代码区大概能占到100M,全局区大概占1M 栈区大概占100M,剩下的都分配给了堆空间
所以,我们在写iOS程序时,大多程序都是在堆区上开辟的。