Laufzeitfehler dyn. Matrizen

mbmb

Grünschnabel
Hallo!
Ich bin kein Profi beim c-Programmieren, und habe einen Code gefunden, der fehlerfrei compiliert, aber dann einen Laufzeitfehler verursacht:
Code:
double** freematrix(double** matrix, int m) {
	int j;
	for (j=0; j<m; ++j) {
		free(matrix[j]);
	}
	free(matrix);
	return NULL;
}

double** mallocMatrix(int m, int n) {
	int j,k;
	double** matrix = malloc(m*sizeof(double*));
	for (j=0; j<m; ++j) {
		matrix[j] = malloc(n*sizeof(double));
		for (k=0; k<n; ++k) {
			matrix[j][k] = 0;
		}
	}
	return matrix;
	}

double** loadmatrix(char* name,int m,int n) {
	int j,k;
	double** A = mallocMatrix(m,n);
	FILE* file = fopen(name,"r");
	int error = (file == NULL);
	int tmp = 0;
	for (j=0; j<m && !error; ++j) {
		for (k=0; k<n && !error; ++k) {
			tmp = fscanf(file,"%lf",&A[j][k]);
			error = (tmp == EOF);
			}
		}
	fclose(file);
	if (error) {
		A = freematrix(A,m);
		}
	return A;
	}

beim Aufruf:
Code:
double **B =loadmatrix("c:\\matrix.txt",4,4);
B[2][2]=2.4;

erhalte ich dann eben einen Laufzeitfehler :-(

Die Datei matrix.txt enthält
Code:
4 3 2 1
2 4 4 4
3 4 4 2
2 4 -2 1


Wer kann mir helfen?
 
Zuletzt bearbeitet:
Hallo.
Bist du den Code den schon mal mit dem Debugger durchgegangen? Und wenn ja, an welcher Stelle ist denn der Fehler entstanden?
 
es lag wohl an
Code:
fscanf(file,"%lf",&A[j][k]);


ich verwende ein Leerzeichen als Trenner:
Code:
fscanf(file,"%lf ",&A[j][k]);
<- so geht's
 
Zuletzt bearbeitet:
Zurück