-1
다음은 다차원 배열을 재 할당 할 때의 코드입니다. add_line 함수를 한 번 이상 사용하면 코드가 작동하지 않습니다. 하루 종일 알아 내려고 노력했다. 누군가 도울 수 있습니까? 여기에 코드의 고정 된 (그러나 검증되지 않은) 버전 -다차원 배열 재 할당
void add_line(char ** wlist, char * word, int * size) // Extending wordlist or cross
{
(*size)++;
char ** new_wlist = (char**)realloc(wlist,(*size)*sizeof(char*));
if(new_wlist == NULL)
show_error("Reallocation error",1);
wlist = new_wlist;
wlist[(*size)-1] = (char*)malloc(ROW_SIZE*sizeof(char));
if(strlen(word)>ROW_SIZE)
show_error("Word too long", 1);
strcpy(wlist[(*size)-1],word);
}
int main()
{
int * w_size = (int*)malloc(sizeof(int));
int * c_size = (int*)malloc(sizeof(int));
*w_size = 0;
*c_size = 0;
char ** wordlist = (char**)malloc(sizeof(char*));
char ** cross = (char **)malloc(sizeof(char*));
add_line(cross,"test1",c_size);
add_line(cross,"test2",c_size);
return 0;
}
'코드가 작동하지 않습니다'는 의미는 무엇입니까? – Undefined