如何在C中分配可变长度数组?

时间:2015-11-18 22:55:42

标签: c arrays

我的理解是,为了在堆栈上为变量分配内存,编译器需要在编译期间知道它的大小。在可变长度数组的情况下,由于编译器无法计算出大小,我认为内存在运行时分配在堆中。我打印了地址以确认这一点 -

int main(){
    int n;
    cin>>n;
    int A[n];
    cout<< &n << " "<< A <<endl;
}

输出

0x7ffc663c9b2c 0x7ffc663c9ae0

它们彼此接近=&gt; A在堆栈上。编译器如何知道在编译时分配给数组A的大小是什么?

0 个答案:

没有答案