Fehler nur im Release
-
hallo!
folgender code funktioniert im debug mode einwandfrei, führt jedoch im release zu einem zugriffsfehler.
void makeCsv(float **matrix, int xrange, int yrange, char fname[]) { FILE *f; int i,j; char name[] = "matrix_"; char extension[] = ".csv"; strcat(name, fname); strcat(name, extension); if((f = fopen(name, "w")) != NULL) { for(i = 0; i < xrange; i++) { for(j = 0; j < yrange; j++) { fprintf(f, "%2.0f;", matrix[i][j]); } fprintf(f, "\n"); } fclose(f); } }
Was ist daran falsch? Kann mir jemand helfen?
Gruß
Sebastian
-
Du kopierst zu viel in einen zu kleinen Buffer:
char name[] = "matrix_"; ... strcat(name, fname); strcat(name, extension);
Mach aus dem char name[]... ein *char name und allociere Speicher mittels malloc respektive realloc. Dann sollte es gehen.
-
Dankeschön, darauf hab ich nicht geachtet!
MfG