推送链接列表 - C.

时间:2016-10-04 03:36:11

标签: c linked-list

您好我正在用链接列表编写一个程序,我不知道我做错了什么。问题在于:“podio novo =(struct podio )malloc(sizeof(podio));”推内。 这是我的代码:

$(this).closest('.field_wrapper').remove();

2 个答案:

答案 0 :(得分:2)

问题是,struct podio是一种不完整的类型,与通过podio定义的类型struct Node(又名typedef struct Node podio;)无关。因此,这两种类型(podio *struct podio *)不兼容;他们指向不同类型的对象。

如果您丢失struct行中的malloc(),则代码应该编译。

podio *novo = (podio *) malloc(sizeof(podio));

或:

podio *novo = malloc(sizeof(*novo));

那些谴责你casting the result of malloc()的人;幸运的是,我不是其中之一。

答案 1 :(得分:0)

问题在于这些行

novo->dados=elem;
novo->prox=*p;

此处novo->dadosstruct Sucesso*,但elemstruct Sucesso,即不是指针。因此,您要将结构分配给无效的结构指针。您需要在elem中传递push()的地址。

nove->proxstruct Node **ppodio *p又名struct Node *,因此* p为padio而不是指针。所以你再次将结构分配给指向结构的指针。