Предупреждение компилятора об «уровнях косвенности» должно было вас предупредить. Функция должна быть
void transpose(double matrix[][5], int size)
, а остальные *
звезды тоже должны быть удалены.
transposed[j][i] = matrix[i][j];
...
matrix[i][j] = transposed[i][j];
В сторону: ваши пределы управления циклом не идиоматичны. Это
i<=size-1;
лучше, чем
i<size;
(и может быть ошибочным).
Если вы жестко закодировали предел, такой как j<=4
, не сразу видно, что это на самом деле 5-1
, и если выиспользовал j<5
, что было бы более очевидно, что это тот же 5
, что и в измерении массива.
Если вы решите заменить это измерение значением #define
или const int
, выПридется выследить 4
с, а также 5
с.