Этот код должен выделять, инициализировать и печатать двухмерный массив. По какой-то причине в зависимости от значения N 4-й столбец имеет разные значения. (Все должно быть 0).Динамически выделенный 2D-массив не инициализируется
int N = 10;
int **A;
int i, j;
A = malloc(N * sizeof(int *));
for (i = 0; i < N; i++)
A[i] = malloc(N * sizeof(int));
for (i=1;i<N;i++)
for (j=1;j<N;j++)
A[i][i]=0;
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++)
printf("%d ", A[i][j]);
printf("\n");
}
Пример вывода:
0 0 0 0 12 0 0
0 0 0 0 10 0 0
0 0 0 0 8 0 0
0 0 0 0 6 0 0
0 0 0 0 0 0 0
0 0 0 0 2 0 0
0 0 0 0 0 0 0
'A [я]' является 'INT *', поэтому 'SizeOf (A [i]) 'здесь не будет работать. – juanchopanza
кричит, что я это наблюдал. Ожидалось, что это будет int []. Я его отредактирую спасибо – Vinzenz