Код: Выделить всё
typedef struct {
float** matrix;
float* values;
} Matrix;
void matrix_init(Matrix matrix, int size) {
int row;
int column;
matrix.matrix = (float**) calloc(size, sizeof(float*));
for (row = 0; row < size; row++)
matrix.matrix[row] = (float*) calloc(size, sizeof(float));
for (row = 0; row < size; row++)
for (column = 0; column < size; column++) {
printf("Enter element %i.%i >>> ", (row + 1), (column + 1));
scanf("%f", &matrix.matrix[row][column]);
}
matrix.values = (float*) calloc(size, sizeof(float));
for (row = 0; row < size; row++) {
printf("Enter value %i >>> ", (row + 1));
scanf("%f", &matrix.values[row]);
}
}
...
int main() {
Matrix matrix;
int size;
...
matrix_init(matrix, size);
//здесь ошибка сегментирования
...
}
Объясните, пожалуйста, в чём ошибка? Предполагаю, что дело в областях видимости, но вроде же как указатели на кучу сами не удаляются?
