堆空间的内存是动态分配的,一般用于存放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;
}
}