首页
IT
登录
6mi
u
盘
搜
搜 索
IT
【Objective-C】栈(stack)和堆(heap)的区别
【Objective-C】栈(stack)和堆(heap)的区别
xiaoxiao
2025-07-13
6
栈(stack)和堆(heap)的区别:
栈:存储值类型(有时候翻译成“堆栈”)
无ARC(自动引用计数)负担,由系统自动管理,以执行函数为单位(一个函数一个栈)
空间大小编译时决定(根据参数和局部变量可以确定)
函数执行时,系统自动分配一个栈
函数执行结束,系统会立即回收stack
函数之间通过拷贝值传递
具有局限性,大小有限额,超出会stack overflow(栈溢出)(一般是超大递归、死循环情况)
堆:存储引用类型对象
分配由程序员手动请求([a alloc])(c语言里面的malloc)
释放有两种方式,可以手工,也可以ARC机制自动释放
函数之间通过拷贝引用(指针)传递
具有全局性,总体大小无限制(受限于系统内存整体大小)
转载请注明原文地址: https://ju.6miu.com/read-1300660.html
最新回复
(
0
)