A
是一个二维数组,我想将它的所有非零项存储在一个名为 B
的新一维数组中...这是我调用的函数这样做,但它使程序崩溃,我不知道我做错了什么?
int doSomething(int A[N][N], int B[ ], int C[ ]){
int i,j;
int k=0;
for(i=0; i<N; i++){
for(j=0; j<N; j++){
if (A[i][j] != 0){
B[k]= A[i][j];
k++;
}
}
}
for (i = 0; i < 4; i++) {
printf("%d ", B[i]);
}
}
最佳答案
问题是 4
里面for(i = 0; i < 4; i++)
.大概是B
的长度array 小于 4,因此会导致错误。因为您正在访问越界索引。所以你应该使用 for (i = 0; i < k; i++)
相反。
关于c - 将二维数组中的所有非零项保存到另一个一维数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29777923/