최근에 저는 서로 다른 데이터 구조를 코딩하여 프로그래밍 기술을 향상시켜 왔습니다.연결된 목록 작업 (코어 덤프)
이제 연결 목록을 작성하고 있지만이 오류에 대해 잘 모르겠으므로 문제가 발생하여 오랜 시간 짜증이났다. 분할 오류 (코어 덤프)는 알았지 만 나는 기억의 작동에있어 잘못된 것을 만들었다.
link_list.h :
struct LINK_LIST {
char *string;
struct LINK_LIST *next;
}link_list;
==============================
link_list 이 .c :
int insert(struct LINK_LIST *link, int pos, char *in) {
int i;
if (get_length(link)>=STRING_SIZE) {
fprintf(stderr, "Link list is full!!!");
return ERROR;
}
else {
if (pos < 0 || pos-1 > get_length(link)) {
fprintf(stderr, "Invalid position");
return ERROR;
}
else {
i = 0;
do {
struct LINK_LIST *new_node;
init_link_list(new_node);
new_node->next = link->next;
link->next = new_node;
new_node->string = in;
i += 1;
} while(i<pos-1);
}
}
return OK;
}
첫 번째 작업은'='의 오른쪽에있는 (struct LINK_LIST *) 캐스트를 제거하는 것입니다. – Bathsheba
다음 지침을 따라야합니다. http://sscce.org/ 가장 작은 실패 사례를 게시하십시오. –
'init_link_list (new_node);'이후,'new_node' 포인터는 아직 초기화되지 않습니다. – aschepler