int A [n]是在STACK上还是在HEAP上分配的?

时间:2013-10-01 23:57:49

标签: c++ memory stack heap

如果执行以下行:

    void dummy () {
     int n;
     scanf ("%d", &n);
     int A[n];
    }

阵列A是在STACK上还是在HEAP上分配?

1 个答案:

答案 0 :(得分:5)

这应该是C或C ++问题吗?

请注意,您的数组声明在C ++中是正式非法的。使用非常量表达式在数组声明中指定数组大小是非法的。

假设您的C ++编译器支持此声明(从C语言借用此功能),A是本地数组对象。它的分配方式与声明没有链接的任何其他本地对象相同,即具有自动存储持续时间(术语中的“堆栈”)。