Hallo!
Ich bin kein Profi beim c-Programmieren, und habe einen Code gefunden, der fehlerfrei compiliert, aber dann einen Laufzeitfehler verursacht:
beim Aufruf:
erhalte ich dann eben einen Laufzeitfehler :-(
Die Datei matrix.txt enthält
Wer kann mir helfen?
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: