Alles, was ich tun will, ist eine Datei Inhalt lesen und sie zu einer Zeichenfolge.
Ich habe ein Problem beim Lesen aus der Datei. Ich beginne mit fgets zu lesen und wenn mein Platz nicht ausreicht, speichere ich den Speicher neu. Wenn ich versuche, erneut zu schrumpfen, stürzt es ab. Ich lese, dass es mit den Meta-Daten von malloc sein könnte, aber ich kann nicht sehen, wie ich sie beeinflusse. Vielen Dank im VorausLesen mit malloc und Realloc aus Datei
int readStringFromALE(int height,int width,char **stringImage,FILE *fout){
char buffer[BUFFER_SIZE] = {'\0'};
*stringImage=(char *)malloc(sizeof(char)*BUFFER_SIZE+1);
*stringImage[0]='\0';
int i=1;
int size=sizeof(char)*BUFFER_SIZE,readSize=0;
while(fgets(buffer, sizeof(buffer), fout) != NULL){
strncat(*stringImage,buffer,strlen(buffer)+1);
readSize+=strlen(buffer)+1;
printf("%s",buffer);
if(size<=readSize){
char *temp;
temp=(char *)realloc(*stringImage,i*BUFFER_SIZE*sizeof(char)+1);
if(temp==NULL){
printf("Unable to allocate memory\n");
return EXIT_FAILURE;
}
i++;
*stringImage=temp;
size=i*BUFFER_SIZE*sizeof(char);
}
if (buffer[strlen(buffer) - 2] == ':')
break;
}
char *temp=(char *)realloc(*stringImage,strlen(*stringImage)+10);
if(temp==NULL){
printf("Unable to allocate memory\n");
return EXIT_FAILURE;
}
*stringImage=temp;
return EXIT_SUCCESS;
}
Vielleicht möchten Sie [getline (3)] (http://man7.org/linux/man-pages/man3/getline.3.html) –
'strncat (* stringImage, Puffer, strlen (Puffer) +1); 'ist gefährlicher Unsinn. – wildplasser