malloc 与申明变量区别

来源:互联网 发布:象过河软件 编辑:程序博客网 时间:2024/05/24 02:37
声明变量是在栈上申请内存
malloc是在堆上申请内存

然后就是堆内存和栈内存的不同用处:
栈是系统控制的,对函数内声明的变量,内存的声明周期就是到函数结束,除非是全局变量和静态变量,始终占有空间,直到整个程序结束。。
这样就很限制了内存实用的灵活。
堆是程序员自己控制的,malloc的时候就申请,free的时候就释放,换句话说,你可以在任意你想用的时候申请,任意你觉得合适的地方释放,内存的时候更灵活也更有效率。当然带来的问题就是内存泄露的危险,即申请了,却忘了释放,那这块内存就算泄露了。
原创粉丝点击