堆空间的内存是动态分配的,一般用于存放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;
}
}
本文深入探讨了堆空间和栈空间的内存管理方式,解释了它们分别用于存放Objective-C对象和其他基本数据类型的原理。堆内存动态分配,需手动或由ARC管理释放;栈内存自动分配,由编译器管理。
151

被折叠的 条评论
为什么被折叠?



