C++中关于堆和栈的说法,哪个是错误的: 堆的大小仅受操作系统的限制,栈的大小一般一般较小 在堆上频繁的调用new/delete容易产生内存碎片,栈没有这个问题 堆和栈都可以静态分配 堆和栈都可以动态分配
选C,静态分配是指在编译阶段就能确定大小,由编译器进行分配,堆不可以进行静态分配,堆的申请都是在执行过程中进行的。
A,堆和栈的大小都可以设置,栈一般只有几KB。
B,堆在动态分配时,要申请连续的内存空间,释放后会产生碎片。
D,堆是使用malloc()、calloc()、realloc()等函数动态分配的,而使用alloca()函数可以动态分配栈的内存空间,释放的时候由编译器自己释放。