2
파싱 할 때 텍스트 파일의 내용을 한 번에 가져올 수있는 함수를 작성하고 있습니다.glibc가 감지되었습니다. realloc() : 다음 크기가 유효하지 않습니다. X
glibc detected *** ./mention: realloc(): invalid next size: 0x00000000010ac250 ***
특히, SEARCH_LENGTH 40로 정의된다 : 내가 뭘 모두가 최대한 빨리 내가 glibc는 오류가 다른 지역 변수에 메모리를 할당하려고 그들을 라인을 받고 인쇄이지만, 경우에 기능이 작동 그리고 (char * word)를 추가하면 오류가 발생합니다.
void testF(FILE * stream){
char * line = calloc(SEARCH_LENGTH , sizeof(char));
int lineScalar = 1;
char * word = calloc(SEARCH_LENGTH, sizeof(char)); // adding this line causes the error
while(fgets(line, SEARCH_LENGTH + 1, stream)!= NULL){
while((*(line + (SEARCH_LENGTH*lineScalar -1)) != '\0') && (*(line + (SEARCH_LENGTH*lineScalar -1)) !='\n')){
lineScalar++;
line = realloc(line, sizeof(char)*SEARCH_LENGTH*lineScalar);
assert(line);
fgets(line + SEARCH_LENGTH*(lineScalar - 1), SEARCH_LENGTH + 1, stream);
}// inner while
lineScalar = 1;
printf("Line:%s\n",line);
}
free(line);
free(word);
}
감사