int main(int argc, char **argv) {
int n, m, number, array[m][m];
scanf("%d %d", &n, &m);
for (int k = 0; k < m; ++k) {
for (int i = 0; i < m; ++i) {
scanf("%d ", &number);
array[k][i] = number;
printf("%d ", array[k][i]);
}
printf("\n");
}
printf("\n");
for (int k = 0; k < m; ++k) {
for (int i = 0; i < m; ++i) {
printf("%d k=%di=%d\n", array[k][i], k, i);
}
printf("\n");
}
}
我一直收到错误:
Bus error (core dumped)
我们有一个m * m矩阵,我们在其中存储用户输入上给出的值。然后我们将数组打印到用户输入。我在另一个程序中执行此操作,这是因为此代码,我的程序将崩溃。
有没有人知道发生了总线错误?
答案 0 :(得分:4)
声明一个可变长度数组,其中维度基于未初始化的值。在读入m
后推迟数组声明应解决问题:
int n,m, number;
scanf("%d %d", &n, &m);
int array[m][m];