// column-matrix: delete row on index and print #include #include int **init_matrix(int row, int column) { int **matrix = NULL; matrix = malloc(column * sizeof(int*)); if (!matrix) return NULL; for(int i = 0; i < column; i++) { matrix[i] = malloc(row * sizeof(int)); if (!matrix[i]) { free(matrix); return NULL; } } for(int i = 0; i < row; i++) { for(int j = 0; j < column; j++) matrix[i][j] = 1; } return matrix; } void delete_row(int ***my_matrix, int num_row, int *row, int column) { for (int i = 0; i < column; i++) { for (int j = num_row; j < (*row - 1); j++) { (*my_matrix)[i][j] = (*my_matrix)[i][j + 1]; } (*my_matrix)[i] = realloc((*my_matrix)[i], (*row - 1) * sizeof(int*)); } *row = *row - 1; } void print_matrix(int **my_matrix, int row, int column) { for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { printf("%d ", my_matrix[i][j]); } printf("\n"); } printf("\n"); } int main() { int **matrix2 = NULL; int row = 2; int column = 2; matrix2 = init_matrix(row, column); print_matrix(matrix2, row, column); delete_row(&matrix2, 0, &row, column); print_matrix(matrix2, row, column); for(int i = 0; i < column; i++) free(matrix2[i]); free(matrix2); }