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 🙂


Anmelden zum Antworten