您好我正在用链接列表编写一个程序,我不知道我做错了什么。问题在于:“podio novo =(struct podio )malloc(sizeof(podio));”推内。 这是我的代码:
$(this).closest('.field_wrapper').remove();
答案 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->dados
为struct Sucesso*
,但elem
为struct Sucesso
,即不是指针。因此,您要将结构分配给无效的结构指针。您需要在elem
中传递push()
的地址。
而nove->prox
为struct Node *
但*p
为podio *p
又名struct Node *
,因此* p为padio
而不是指针。所以你再次将结构分配给指向结构的指针。