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


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

c语言 基本概念 程序开发

zzing 12 years, 10 months ago

malloc或new的数组存在堆中

不带static前缀的局部数组在栈中

带static前缀的局部数组和全局数组在全局数据区中

恶作剧的傀儡 answered 12 years, 10 months ago

那看你要怎么定义了

1.要是全局静态常量字符组,那就在静态区

2.模块内部的话大部分都是在栈中

3.像三楼讲,要是自己手动分配地址那肯定在堆中啊,所有malloc的空间都是在堆中申请

我是来求图包的 answered 12 years, 10 months ago

参考


<fieldset> <legend class="font_bold"> 引用: </legend>

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

</fieldset>


故乡的茶干 answered 12 years, 10 months ago

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


玖·月神殿 answered 12 years, 10 months ago

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

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


黑神めだか answered 12 years, 10 months ago

Your Answer