【发布时间】:2015-04-21 16:22:42
【问题描述】:
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]);
}
}
【问题讨论】:
-
你怎么知道
i< 4是有效的条件检查?试试i< k。 -
B[]必须有N*N元素而不是4。所以int B[N*N]. -
i < 4应该是i < k -
很明显该函数崩溃了:它的名字不好。
-
@DrKroch 它可能是 do hit 的缩写