1.7.什么是堆(heap)

来源:互联网 发布:淘宝上的avada主题 编辑:程序博客网 时间:2024/06/07 02:58

1.7.什么是堆(heap)


栈和堆不得不结合起来谈论,说一下这两种内存管理方式的使用过程,首先,电脑可能有好多个进程,操作系统事先给每一个进程分配一个栈,供每个程序中的局部变量使用,当程序在运行过程中,发现自带的栈不够用了,或者需要大块的内存来使用了,这时候就要分配堆内存了。在来说一说栈和堆的各自优点。栈是系统自动分配、释放的,不需要手动干预,当定义了一个局部变量时,自动就使用栈了。堆是由手动分配、释放的,完全手动操作,比如全局变量,就是分配在堆上,使用malloc,calloc,ralloc 等函数API来完成对内存申请,malloc的原型是 maollc(size_t,size),体会一下 malloc(40)和malloc(10*sizeof(int))的区别。是不是后者更容易理解,而且这样的传参有利于代码的移植,在写代码的时候要注意一些细节问题。涉及到的具体的代码我们后面再来细说吧。
0 0
原创粉丝点击