码迷,mamicode.com
首页 > 移动开发 > 详细

ios 关于堆 栈,变量存储等问题解析

时间:2017-07-11 11:08:19      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:程序员   lan   c指针   技术   区别   style   targe   www   没有   

 

技术分享

 

技术分享

 

技术分享


 

当代码块一过,里面的a,b,*c指针都会被系统编译器自动回收,因为它存放在栈里面,而OC对象则不会被系统回收,因为它存放堆里面,堆里面的内存是动态存储的,所以需要程序员手动回收内存
总结区别


 
按管理方式分
对于栈来讲,是由系统编译器自动管理,不需要程序员手动管理
对于堆来讲,释放工作由程序员手动管理,不及时回收容易产生内存泄露
按分配方式分
堆是动态分配和回收内存的,没有静态分配的堆
栈有两种分配方式:静态分配和动态分配
静态分配是系统编译器完成的,比如局部变量的分配
动态分配是有alloc函数进行分配的,但是栈的动态分配和堆是不同的,它的动态分配也由系统编译器进行释放,不需要程序员手动管理


 
 

出处:http://www.jianshu.com/p/c8e1d91dda99  

ios 关于堆 栈,变量存储等问题解析

标签:程序员   lan   c指针   技术   区别   style   targe   www   没有   

原文地址:http://www.cnblogs.com/ly1973/p/7149280.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!