从文件中读取字符串并读取句子,以查找句子和单词的数量。运行时,此错误是在每次准确读取24个字符后产生的。我相信我的realloc语句有问题,但是,我不知道如何解决此问题。这是函数:
void getSentence(FILE *fp, int *sentences, char *sentence)
{
char currentLet;
int length = 0;
while ((currentLet = (char)fgetc(fp)) != '.' && currentLet != ':' && currentLet != ';' && currentLet != '?' && currentLet != '!')
{
printf("Current Sentence:%d %s\n", length, sentence);
realloc(sentence, sizeof(char)*(length + 2));
sentence[length] = currentLet;
sentence[length+1] = '\0';
length++;
}
return;
}
它将一直阅读,直到到达句子的结尾为止,这在我的while循环条件中标点符号处显示。
我正在使用以下标志进行编译: gcc fleschIndex.c -Wall -std = c99 -o run
编辑:谢谢,我将行更改为:
sentence = realloc(sentence, sizeof(char)*(length + 2));
现在我不再遇到此错误,但是它仍然停止以39个字符为单位进行读取。