0
배열의 내용을 행렬에 넣으 려합니다. 행렬이 정적이라면 모든 것이 잘 작동하지만 동적으로 할당하려고하면 읽기가 잘되지 않습니다.동적으로 할당 된 행렬에서 올바르지 않은 읽기가 발생했습니다.
int main()
{
int a[]={2, 1, 2, 4, 9, 2, 1, 7, 3, 5, 8, 3};
int c[3][4];
int **b;
b = (int**) malloc (3*sizeof(int*));
for (int i=0; i < 3; i++)
b[i] = (int*) calloc (4, sizeof(int)); //o linie
int k=0, m=0;
for (int i=0; i<12; i++)
{
b[k][m]=a[i];
c[k][m]=a[i];
m++;
if((i!=0) && (!(i % 4))) {k++; m=1;}
}
for (int i=0; i<3; i++){
cout << endl;
for (int j=0; j<4; j++)
cout << b[i][j] << " ";
}
cout << endl;
for (int i=0; i<3; i++){
cout << endl;
for (int j=0; j<4; j++)
cout << c[i][j] << " ";
}
return 0;
}
The output:
2 1 2 4
0 1 2 7 //I have 0, why don't I have 9?
0 5 8 3 //I have 0, why don't I have 3?
2 1 2 4
9 1 2 7 //here is correct
3 5 8 3 //here is correct
내가 잘못했는지 알려주세요.