Objective-C中堆和栈的区别是什么?

mac2023-06-10  15

堆空间的内存是动态分配的,一般用于存放Objective-C对象,并且需要手动释放内存,ARC环境下Objective-C对象由编译器管理,不需要手动释放;栈空间的内存由系统自动分配,一般存放非Objective-C对象的基本数据类型,例如int、float等,有编译器管理,不需要手动管理内存。

int main(int argc,char * argv[] { @autoreleasepool { int a = 0; //存放在栈区 Test *test = [[Test alloc]init]; //存放在堆区 return 0; } }

 

最新回复(0)