标签: c
我知道静态(由编译器确定)和动态(在运行时确定)分配之间的区别。我不明白的是,在我们遇到如下情况时会发生什么:
int n = 5; int arr[n];
arr没有分配malloc,所以它不能放在堆上。但是,它也不能静态分配,因为程序必须运行才能确定a的大小。那么如何分配arr?
答案 0 :(得分:-2)
程序不需要运行来确定a的大小。与Python或其他语言不同,C在运行之前编译。 编译器生成具有5个位置的arr的正确位置的程序集。