我写了一个程序,其中数组的大小作为用户的输入。
#include <stdio.h>
main()
{
int x;
scanf("%d", &x);
int y[x];
/* some stuff */
}
这个程序在我学校的编译器上编译失败Turbo C (古董编译器)。 但是当我用 GNU CC 在我的 PC 上尝试这个时,它编译成功了。
所以我的问题是,这是一个有效的 C 程序吗?我可以使用用户的输入来设置数组的大小吗?
最佳答案
它现在是一个有效的 C 程序,但在 15 年前不是。
无论哪种方式,它都是一个有问题的 C 程序,因为使用 x
时不知道它可能有多大。用户可以为 x
输入恶意值并导致程序崩溃或更糟。
关于c - 这是一个有效的 C 程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16555834/