【发布时间】:2021-05-09 22:22:48
【问题描述】:
我知道您不应该将具有变量的数组声明为大小 ex。 int arr[n]; 因为如果不使用动态内存,数组的大小应该是静态的,但是如果你有这样的函数呢?这是否有效?它似乎运行得很好。它在函数内部声明的事实与它有什么关系吗?
int main() {
int n;
scanf("%d", &n);
exampleFunc(n);
}
void exampleFunc(int const n) {
int arr[n];
for (int i = 0; i < num; i++) {
arr[i] = i + 1;
}
}
提前感谢您的帮助。我是 C 的菜鸟,我发现的所有资源都适用于其他语言。
【问题讨论】:
-
您使用的是可变长度数组,它在C99中有效。
-
这称为变长数组,是在 C99 中引入的。但在 C 标准的更高版本中,它被标记为可选。
标签: c declaration variable-length-array