首页 > 代码库 > 堆与栈

堆与栈

静态分配是指在编译阶段就能确定大小,由编译器进行分配,堆不可以进行静态分配,堆的申请都是在执行过程中进行的。

堆和栈的大小都可以设置,栈一般只有几KB。
堆在动态分配时,要申请连续的内存空间,释放后会产生碎片。
堆是使用malloc()、calloc()、realloc()等函数动态分配的,而使用alloca()函数可以动态分配栈的内存空间,释放的时候由编译器自己释放。

堆与栈