Как считать двумерный массив в Си?
Выделяю память для массива. Считываю данные из файла, и у меня либо вылетает, либо нули или непонятные цифры появляются. Запуталась с освобождением памяти... (
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double **A;
int n_A, m_A;
int i, j;
void read_matrix(const char *filename)
{
FILE *file = fopen(filename, "r");
/* m_A - число строк, n_A - число столбцов */
fscanf(file, "%d %d", &m_A, &n_A);
A = (double **)malloc(n_A * sizeof(double *));
if (A != NULL) {
for (i = 0; i < m_A; i++) {
A[i] = (double *)malloc(n_A * sizeof(double));
if (A[i] != NULL) {
memset(A[i], 0, n_A * sizeof(double));
free(A[i]);
}
fscanf(file, "%lf", &A[i][j]);
}
}
}
int main(int argc, char *argv[])
{
clrscr();
read_matrix("data 2.dat");
free(A);
getch();
return 0;
}
Источник: Stack Overflow на русском