请教C中的数组是存在栈中,还是堆中
请问C中的数组是存在栈中,还是堆中?
如题,请问C语言中,数组是存在堆中还是栈中呢?
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
参考http://blog.****.net/hanlin1985/article/details/3132210
------解决方案--------------------
那看你要怎么定义了
1.要是全局静态常量字符组,那就在静态区
2.模块内部的话大部分都是在栈中
3.像三楼讲,要是自己手动分配地址那肯定在堆中啊,所有malloc的空间都是在堆中申请
------解决方案--------------------
malloc或new的数组存在堆中
不带static前缀的局部数组在栈中
带static前缀的局部数组和全局数组在全局数据区中
如题,请问C语言中,数组是存在堆中还是栈中呢?
------解决方案--------------------
自己new malloc 是存放在堆中的!
其他应该都是由系统管理的,
大部分在栈中,也有可能在静态区,看你怎么申明定义了
------解决方案--------------------
int a[100] = {0} // 这是在栈中的
int a[100] = malloc(sizeof(int)*100); // 这是在堆中的
------解决方案--------------------
参考http://blog.****.net/hanlin1985/article/details/3132210
------解决方案--------------------
那看你要怎么定义了
1.要是全局静态常量字符组,那就在静态区
2.模块内部的话大部分都是在栈中
3.像三楼讲,要是自己手动分配地址那肯定在堆中啊,所有malloc的空间都是在堆中申请
------解决方案--------------------
malloc或new的数组存在堆中
不带static前缀的局部数组在栈中
带static前缀的局部数组和全局数组在全局数据区中