funktion: matrix aus file einlesen und als **int zurückgeben
-
ich habe files, die matrizen beinhalten, die besipsielsweise so aussehen:
_0__3__4
10_12__1
_5__1_11
_1__2__3wobei die _ für leerzeichen sethen und die matrizen immer 4 zeilen haben.
ich will eine funktion erstellen, die diese matrizen einliest und als **int returned.
meine sieht bis jetzt folgendermaßen aus:
int **read_matrix(char *name){
long filesize;
int **mat;
FILE *stream;
int i;stream=fopen(name,"r");
if (stream == 0){
printf("cannot open matrix %s\n",name);
return 0;
}filesize=fsize(stream);
for (i=0; (i=3);i=i+1){
mat[i]=calloc(filesize/4, sizeof(int));
}fread(mat,sizeof(int),filsize,stream);
fclose(stream);
return mat;
}beim kovertieren treten keine probleme auf, aber wenn ich dann teste, und mal ein element der matrix ausgeben lassen, bekomme ich einen segmentation fault.
ich glaube ja, dass ich beim allocieren scheiße gebaut habe, aber weiß es nicht wirklich, was falsch ist.
könnt ihr mir helfen?
-
Du allokierst nirgends Speicher für mat (mat[i] kann dann natürlich nicht funktionieren).