如何从 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;
}
}
}
但是这段代码给了我一个分段错误,我不知道为什么,你能弄清楚我在这里做错了什么吗?