gpt4 book ai didi

c - 推送链接列表 - C

转载 作者:太空宇宙 更新时间:2023-11-04 08:10:34 24 4
gpt4 key购买 nike

你好,我正在用 C 语言编写一个带有链表的程序,但我不知道我做错了什么。问题在于:“podio novo = (struct podio) malloc(sizeof(podio));”推里面。这是我的代码:

struct Sucesso {
char nome_equipe[N1];
float distancia_alvo;
float tempo_propulsao;
};

struct Node {
struct Sucesso *dados;
struct Node *prox;
};

typedef struct Node podio;

void push(podio *p, struct Sucesso elem) {
podio *novo = (struct podio*) malloc(sizeof(podio));
if(novo != NULL) {
novo->dados=elem;
novo->prox=*p;
*p=novo;
}
}

最佳答案

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

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

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

或:

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

会有人因为casting the result of malloc()而责备你;幸运的是,我不是他们中的一员。

关于c - 推送链接列表 - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39843755/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com