-1
У меня возникла проблема с перераспределением массива массива символов. Когда я пытаюсь отладить его с помощью GDB, я получил realloc(): invalid old size: 0x00000000006042f0 error
. Вот код:realloc вызывает ошибку карты памяти SIGABRT
int wordCount = 1;
int charCount = 1;
char** words = (char**)malloc(wordCount*sizeof(char*));
char* words[0] = (char*)malloc(charCount*sizeof(char));
char c = getNextChar(file);//it will read the content of the file character by character
while(c!='\0')//read
{
words[wordCount-1] = (char*)realloc(words[wordCount-1],(charCount+1)*sizeof(char));
charCount++;
c = getNextChar(file);
if(c=='\n' || c==' ')
{
words = (char**)realloc(words, (countWord+1)*sizeof(char*)); //this is where I got the error
wordCount++;
c = getNextChar(file);
}
}
любое предложение? благодаря
Это настоящий код? В строке KarthikT указывается, по крайней мере, предупреждение о компиляторе. –
Пожалуйста, убедитесь, что код в вашем сообщении - это фактический код. Очень сложно помочь вам в противном случае. Скопируйте и вставьте из редактора или IDE. Не переписывайте его и не редактируйте его после вставки. –
Вы '# include'' '? Кроме того: нет оснований, и нет никакой выгоды, чтобы получить результат 'malloc()'/'realloc()' в C, тем более: это приводит к скрытию ошибок. –
alk