typedef struct node{
int data;
struct node *link;
}nd;
nd *head=NULL , *ahead=NULL;
void create_node(int item) {
nd *new, *temp;
new = (nd*)malloc(sizeof(nd));
new->data=item;
new->link=NULL;
if(head==NULL) {
head=new;
}
else {
temp=head;
while(temp->link!=NULL) {
temp=temp->link;
}
temp->link=new;
}
}
void alpha_check(int size) {
int i,j,num;
nd *ti , *tj;
ti=tj=head;
for(i=1 ; i<=size ; i++) {
for(j=1 ; j<=size ; j++) {
num = ((ti->data)*10)+(tj->data);
tj=tj->link;
/*if(num>=65 && num<=90) {
printf("\n->%d",num);
}*/
}
//ti=ti->link;
}
}
void traverse(nd *thead) {
while(thead->link!=NULL) {
printf("%d ",thead->data);
thead=thead->link;
}
printf("%d ",thead->data);
}
그래서 위의 코드의 유일한 문제는 기능 alpha_check 난 다음 노드 변수 TJ 포인트를 원하는()에있다. 다음 노드를 가리키는 대신 분할 결함 (코어 덤프 됨). tj가 다음 노드를 가리킬 수없는 이유를 설명하십시오.링크 목록 세그먼트 오류
(I = 1; i가 크기 = <; 내가 ++) (, J <= 크기, J = J ++ 1) 미국 {{ . 문제가된다. thread-> link! = NULL이 될 때까지 트래버스 할 플래그를 추가 할 필요가있다. –
리스트의 생성 방법이나'alpha_check '의 호출 방법을 알 수 없다. 이 '크기'가 틀린 것 같습니다. 또한 end-of-list 때까지 while 루프가 아닌 크기를 사용하여리스트를 트래버스하는 것은 이상하다. 디버거를 사용하십시오. 그것은 무엇이 잘못되었는지 그리고 그것이 어디서 일어 났는지를 알려줍니다. –
함수 alpha_check에 전달할 크기는 무엇입니까? – Ganeshdip