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

关于C99规范中动态数组的疑问解决思路

2012-06-02 
关于C99规范中动态数组的疑问比如:C/C++ codeint nscanf(%d,&n)int a[n]a的地址在栈区,还是堆区?我输

关于C99规范中动态数组的疑问
比如:

C/C++ code
int n;scanf("%d",&n);int a[n];


a的地址在栈区,还是堆区?

我输出n和 a的地址发现它们和接近,再定义几个变量,对a的地址也有影响。说明在栈区?

所以a的存储空间不能用free释放了?


你们这么用过动态数组吗?还是用以前的malloc

[解决办法]
栈区。
意义不大的功能,因为栈里无法分配大块内存的。
就别折腾这个语法了。
[解决办法]
a在栈区中,其分配的数组也在栈中,所以不能用malloc释放
[解决办法]
你都验证过了
[解决办法]
C/C++ code
记得一句话:变长数组必须是自动存储类的,他们必须在函数内部或作为函数参量声明, 而且声明时不可以进行初始化.这个变只是维数可以用变量来指定而已. 不是说他创建后就可以修改其大小. 

热点排行