c语言 - 为什么这个函数不起作用?(链表)



有人能帮助我理解为什么这会给我分段错误吗?该函数应该在列表末尾添加 n。

typedef struct lligada {
int valor;
struct lligada *prox;
} *LInt;
void appendL (LInt *l, int n){
LInt new=(LInt)malloc(sizeof(struct lligada));
while ((*l) && (*l)->prox) l=&((*l)->prox);
(*l)->prox=new;
new->valor=n;
new->prox=NULL;
}

如果最初头节点等于NULL则此状态

(*l)->prox=new;

为您提供分段错误。

更正确的函数定义可能如下所示

void appendL ( LInt *l, int n )
{
LInt new = (LInt)malloc(sizeof(struct lligada));
new->valor = n;
new->prox = NULL;
while ( *l != NULL ) l = &( *l )->prox;
*l = new;
}

相关内容

  • 没有找到相关文章

最新更新