E có đoạn code sau để nhập/xuất 2D array những bị lỗi khi run, nhờ mọi người giúp ạ
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void InOutArray(int ***arr, int *rows, int *columns)
{
printf("Type the number of row: ");
scanf("%d", &rows);
printf("Type the number of column: ");
scanf("%d", &columns);
*arr = (int **)calloc(*rows, sizeof(int *));
for (int i = 0; i < *rows; ++i)
(*arr)[i] = (int *)calloc(*columns, sizeof(int));
for (int i = 0; i < *rows * *columns; ++i) {
*(*((*arr) + i / *columns) + i % *columns) = 1 + rand() % 100;
printf("%4d", (*arr)[i / *columns][i % *columns]);
if ((i + 1) % *columns == 0)
printf("\n");
}
}
int main()
{
srand(time(NULL));
int rows, columns;
int **arr;
InOutArray(&arr, &rows, &columns);
for (int i = 0; i < rows; ++i)
free(arr[i]);
free(arr);
return 0;
}
P/S: Do thầy bắt ko dc dùng C++ nên e ko thể dùng tham chiếu được