матрица int с указателями в C - путаница в распределении памяти
У меня есть некоторые проблемы с созданием матрицы int без утечек памяти. Я хочу иметь возможность динамически преобразовывать заданную (глобальную) матрицу в любой размер с помощью read_matrix (). Но потом я хочу иметь возможность освободить память позже. Так что в моем основном методе второй printf должен привести к ошибке шины, так как у него не должно быть выделенной памяти. Как бы я пошел о создании этого?
<code>int** first_matrix; int** second_matrix; int** result_matrix; int** read_matrix(int size_x, int size_y) { int** matrix; matrix = calloc(size_x, sizeof(int*)); for(int i = 0;i<size_x;i++) { matrix[i] = calloc(size_y, sizeof(int)); } for(int i = 0;i<size_x;i++) { for(int j = 0;j<size_y;j++) { matrix[i][j] = i*10+j; } } return matrix; } int main(int stackc, char** stack) { first_matrix = read_matrix(10,10); printf("9:3 %d - 4:6 %d \n", first_matrix[9][3], first_matrix[4][6]); free(*first_matrix); free(first_matrix); printf("9:3 %d - 4:6 %d \n", first_matrix[9][3], first_matrix[4][6]); } </code>