0
이것은 코드 단편입니다. 사전 형식은 다음과 같습니다. {word word \ n word word \ n ...}2D 문자 배열 동적 재배치 실패
두 번째로 roWords 단어를 재 할당하는 프로그램이 실패한 것 같습니다. 그 이유는 무엇입니까?
다음과 같이 선언하십시오. char ** roWords = NULL, ** enWords == NULL;
while (fgets(buffer, 100, dictionary))
{
counter++;
roWords = (char**)realloc(roWords, sizeof(char*)* counter);
enWords = (char**)realloc(enWords, sizeof(char*)* counter);
p = strtok(buffer, " \n");
roWords[counter - 1] = NULL;
roWords[counter - 1] = (char*)realloc(roWords, sizeof(char)* strlen(p));
strcpy(roWords[counter - 1], p);
p = strtok(NULL, " \n");
enWords[counter - 1] = NULL;
enWords[counter - 1] = (char*)realloc(enWords, sizeof(char)* strlen(p));
strcpy(enWords[counter - 1], p);
}
은 어떻게 가을합니까? 오류 메시지가 있습니까? – JVMATL
' '\ 0'종료를 위해 여분의 char 하나를 할당해야합니다. 또한, 설정 후 'realloc'은 약간 복잡해 보입니다. 단어에 메모리를 할당하는 데 'malloc'을 사용하는 것이 더 명확 할 것입니다. –
이 프로그램은 첫 번째 루프에서 잘 작동하지만 dictionray 파일에서 두 번째 줄을 읽으면 함수를 다시 입력합니다. 카운터가 증가하고 카운터도 증가하지만 신이기도하지만 다시 입력 할 때 "roWords = (char * *) realloc (roWords, sizeof (char *) * counter); " 어설 션 오류가 발생했습니다. 어떤 설교? –