Я пытаюсь использовать fgets() для чтения текста из файла, и я продолжаю получать ошибку сегментации. Программа читает весь файл, а затем читает последнюю строку, с которой он падает. Любая помощь будет оценена по достоинству.fgets() вызывает ошибку сегментации при чтении файла
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *readFile(FILE *);
char *readFile(FILE *file){
int *outputSize = (int *)malloc(sizeof(int));
(*outputSize) = 1024;
char *buf = (char *)malloc(sizeof(char)*1024);
char *output = (char *)malloc(sizeof(char)*(*outputSize));
*output='\0';
while(fgets(buf,1024,file)){
if(strlen(output)+strlen(buf)+1>(*outputSize)){
printf("REALLOCATING...");
(*outputSize) *=2;
output = realloc(output,sizeof(char)*(*outputSize));
}
printf("BUFFER SIZE: %d\nBUFFER : %s\n",strlen(buf),buf);
strcat(output,buf);
printf("OUTPUT SIZE: %d\nOUTPUT: %s\n",strlen(output),output);
}
printf("FREEING...");
free(outputSize);
free(buf);
return output;
}
'char * output = (char *) malloc (размерof (char) * (* outputSize)); * выход = 0'; – BLUEPIXY
'if (strlen (output) + strlen (buf) +1> (* outputSize)) {' – BLUEPIXY
Я не вижу, как это поможет. Он делает это через весь файл просто отлично. Но после того, как закончилась ошибка сегментации. – user3294542