Ошибка в './run': поврежденный размер и предыдущий размер: 0x000056533910b020 - PullRequest
0 голосов
/ 08 февраля 2019

Чтение в строке из файла и чтение в предложении, чтобы найти количество предложений и слов.При запуске эта ошибка выдается после прочтения ровно 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 символов.

...