c의 링크 된 목록에서 항목을 삭제하려면 어떻게해야합니까?링크 된 목록에서 항목을 삭제합니다.
typedef struct
{
int n;
struct item *nexI;
} item;
#define na 1000
int n, j;
내 주에 있습니다
이item * list[na];
n = 5;
for(j = 0; j < na; j++)
remove_elem(list, n, j);
지금 내 기능 remove_elem :
void remove_elem(item * list[], int n, int pos)
{
int i;
item * aux;
item * sec;
aux = list[pos]->nexI;
if(aux == NULL)
return;
else
{
sec = (item *)aux->nexI;
if(aux->n == n)
{
list[pos]->nexI = sec;
return;
free(aux);
}
while(sec != NULL)
{
if(sec->n == n)
{
aux->nexI = sec->nexI;
free(sec);
return;
}
aux = (item *) aux->nexI;
sec = (item *) sec->nexI;
}
}
}
하지만이 코드는 내게 세그먼트 오류를주고 내가 통지를 캔트 왜 내가 여기서 잘못하고있는 걸 알아낼 수 있니?
백만 번 반복. "연결된 목록에서 삭제"를 검색하십시오. –
디버거에서 실행 해 보셨습니까? 충돌이 일어나는 곳을 알려줍니다. –
그리고 디버거에서 세그먼테이션 오류가 발생하는 위치는 어디입니까? 그리고 그 시점에서 변수 값은 무엇 이었습니까? – Useless