栈(stack)上申请内存大小限制问题
2016-10-19 23:24
239 查看
#include <iostream> using namespace std; long int count = 0; void stack() { char msg[1024]; //加上static可以测试静态存储区的内存 cout<<"count="<<count++<<endl; stack(); } int main(void) { stack(); return 0; }
上面程序输出的值大概就是栈能申请的最大内存,单位为k。
我们可以在终端用ulimit -a 察看stack内存的限制,得到结果为8192k(实际操作中不能申请到这么大的内存)
用malloc是在堆上申请内存,申请的内存可能不是连续的,所以可以申请很大内存。但stack申请的内存是连续的,所以一次不能申请太多。
int main() { //int stack[2097152]; //2097152*4=8192k(申请内存太大,出错) int stack[2000000]; // 正确 stack[0]=1; return 0; }
相关文章推荐
- linux C语言 内存申请 堆 栈 大小限制
- C语言申请内存时堆栈大小限制
- 使用dma_alloc_writecombine申请内存空间大小的限制
- 转:C语言申请内存时堆栈大小限制
- C语言申请内存时堆栈大小限制
- 解决在Windows2003Server和IIS 6.0中对于上传下载文件大小限制的问题
- 限制某个asp.net应用程序使用的内存的大小
- win2003上传、下载大小限制的问题
- 关于eWebEditor突破上传图片大小限制的问题
- 解决windows2003图片上传大小限制问题
- 解决jspsmartupload上传文件时大小受限制问题
- C#如何限制程序内存使用的大小
- win2003上传文件大小限制问题
- 认识 free指针背后(释放内存大小问题)
- php上传文件大小限制问题的解决
- 解决在Windows2003Server和IIS 6.0中对于上传下载文件大小限制的问题
- 32位Windows系统未分页内存限制导致的VPS的容量问题
- win2003上传、下载大小限制的问题
- 2003下,asp无组件上传文件大小限制问题
- 关于结构体,联合体及内存大小的问题