首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请教C中的数组是存在栈中,还是堆中

2013-08-09 
请问C中的数组是存在栈中,还是堆中?如题,请问C语言中,数组是存在堆中还是栈中呢?[解决办法]自己new malloc

请问C中的数组是存在栈中,还是堆中?
如题,请问C语言中,数组是存在堆中还是栈中呢?
[解决办法]


自己new malloc 是存放在堆中的!

其他应该都是由系统管理的,
大部分在栈中,也有可能在静态区,看你怎么申明定义了

[解决办法]

int a[100] = {0} // 这是在栈中的
int a[100] = malloc(sizeof(int)*100); // 这是在堆中的

[解决办法]
参考http://blog.csdn.net/hanlin1985/article/details/3132210

引用:
如题,请问C语言中,数组是存在堆中还是栈中呢?

[解决办法]
那看你要怎么定义了
1.要是全局静态常量字符组,那就在静态区
2.模块内部的话大部分都是在栈中
3.像三楼讲,要是自己手动分配地址那肯定在堆中啊,所有malloc的空间都是在堆中申请
[解决办法]
malloc或new的数组存在堆中
不带static前缀的局部数组在栈中
带static前缀的局部数组和全局数组在全局数据区中

热点排行