我想定义一个二维数组作为全局变量:
int visited[nbVertices][nbVertices];
但问题是我必须从文件中扫描“nbVertices”。无论如何要解决这个问题? 我认为它可以通过使用指针来修复,但我不知道该怎么做。
最佳答案
因此,尽管我们正在讨论:您不需要数组是全局的。因此,您可以只使用可变长度数组并将数组传递给所有需要它的函数:
void printArray(int n, int k, int arr[n][k])
{
for (int i = 0; i < n; i++) {
for (int j = 0; j < k; j++) {
printf("%6d", arr[i][j]);
}
printf("\n");
}
}
int main()
{
// get user input in the format "n" <space> "k"
char *end;
char buf[LINE_MAX];
if (!fgets(buf, sizeof buf, stdin))
return -1;
// create array, fill it with random stuff
int n = strtol(buf, &end, 10);
int k = strtol(end, NULL, 10);
int a[n][k];
for (int i = 0; i < n; i++) {
for (int j = 0; j < k; j++) {
a[i][j] = random();
}
}
// print it
printArray(n, k, a);
return 0;
}
关于c - 定义一个二维全局数组,其大小必须从文件中扫描,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20807187/