ciao a tutti,
ho spostato la scritture in un file txt dal main ad una funzione...una scemenza insomma, ma la chiama fclose scatena un putiferio. La funzione in questione è la seguente:
codice:
void printDataset(double* x,double* y,int n,char* file,int line_style,int symbol)
{
FILE *f = fopen(file,"a");
int i;
fprintf(f,"#m=%d, S=%d\n",line_style,symbol);
for (i=0;i<n;i++)
{
fprintf(f,"%lf %lf\n",x[i],y[i]);
}
fprintf(f,"\n");
fclose(f);
}
in pratica, appena chiama fclose (ho usato gdb), spunta sta mappazza qua:
*** glibc detected *** ./interpolation: free(): invalid next size (normal): 0x088b7478 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0x32cff1]
/lib/tls/i686/cmov/libc.so.6[0x32e6f2]
/lib/tls/i686/cmov/libc.so.6(cfree+0x6d)[0x3317cd]
/lib/tls/i686/cmov/libc.so.6(fclose+0x14a)[0x31d50a]
./interpolation[0x804883a]
./interpolation[0x804875a]
./interpolation[0x804933d]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0x2d8b56]
./interpolation[0x8048691]
======= Memory map: ========
002c2000-00400000 r-xp 00000000 08:01 1967986 /lib/tls/i686/cmov/libc-2.10.1.so
00400000-00401000 ---p 0013e000 08:01 1967986 /lib/tls/i686/cmov/libc-2.10.1.so
00401000-00403000 r--p 0013e000 08:01 1967986 /lib/tls/i686/cmov/libc-2.10.1.so
00403000-00404000 rw-p 00140000 08:01 1967986 /lib/tls/i686/cmov/libc-2.10.1.so
00404000-00407000 rw-p 00000000 00:00 0
006f5000-006f6000 r-xp 00000000 00:00 0 [vdso]
00830000-0084c000 r-xp 00000000 08:01 2348 /lib/libgcc_s.so.1
0084c000-0084d000 r--p 0001b000 08:01 2348 /lib/libgcc_s.so.1
0084d000-0084e000 rw-p 0001c000 08:01 2348 /lib/libgcc_s.so.1
00dd2000-00ded000 r-xp 00000000 08:01 34 /lib/ld-2.10.1.so
00ded000-00dee000 r--p 0001a000 08:01 34 /lib/ld-2.10.1.so
00dee000-00def000 rw-p 0001b000 08:01 34 /lib/ld-2.10.1.so
08048000-0804a000 r-xp 00000000 00:1c 35094620 /usr/users/tuttoweb/public_html/interpolation/interpolation
0804a000-0804b000 r--p 00001000 00:1c 35094620 /usr/users/tuttoweb/public_html/interpolation/interpolation
0804b000-0804c000 rw-p 00002000 00:1c 35094620 /usr/users/tuttoweb/public_html/interpolation/interpolation
088b7000-088d8000 rw-p 00000000 00:00 0 [heap]
b7700000-b7721000 rw-p 00000000 00:00 0
b7721000-b7800000 ---p 00000000 00:00 0
b78d0000-b78d1000 rw-p 00000000 00:00 0
b78e2000-b78e4000 rw-p 00000000 00:00 0
bfe54000-bfe69000 rw-p 00000000 00:00 0 [stack]
Aborted
ps.: il file viene scritto, ma il programma smette di funzionare....
dov'è che sto sbagliando?