Dynamische Speicheralloziierung
-
Hi,
Die Funktion soll die Dateien in einem Verzeichnis auslesen, und in einem Array speichern. Leider liefert sie nur eine Fehlermeldung also hab ich wohl irgendwas falsch gemacht. Sieht jem den Fehler bzw kann mir nen Tipp geben?Gruß HiFish
int * create_directory(char *path) { FILE *fp; char string[200],dname[9]; char sys[300]=" "; int *files =(int *)malloc(2*sizeof(int)); int i=1; strcat(sys,"ls "); fp=fopen("path.dat","r"); fgets(string,200,fp); strcat(sys,string); fclose(fp); fp=popen(sys,"r"); while(!feof(fp)) { fgets(dname,10,fp); *(files+i)=atoi(dname); i++; files=(int *)realloc(files,i+1*sizeof(int)); } *files=i; fclose(fp); return(files); }
Fehlermeldung:
*** glibc detected *** realloc(): invalid next size: 0x0804b008 ***
-
Punkt vor Strich?
(i+1) * sizeof(int)
-
arg ich sag jetzt mal nixs dazu!
außer danke