gpt4 book ai didi

C取消引用指向不完整类型的指针

转载 作者:太空宇宙 更新时间:2023-11-04 06:28:35 28 4
gpt4 key购买 nike

我看了很多关于这个问题的答案,我在这里看不到问题。

在 dish.h 中我有:

typedef struct Dish_t* Dish;

在 dish.c 中:

struct Dish_t {
DishKind kind;
Taste taste;
};

但是当我在 dish.c 中写入时:

Dish newDish = malloc(sizeof(*newDish));

我收到取消引用错误。当我将 Dish_t 更改为 Dish 时,它起作用了!为什么?

最佳答案

你说:

When I change Dish_t to Dish, it works! Why?

但您的代码实际上使用了 Dish。它不适用于纯 Dish_t,因为那不是有效的类型名称。它必须是 struct Dish_tDish

我建议不要在 typedef 中包含星号,因为它增加了更多混淆的机会。

关于C取消引用指向不完整类型的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23129972/

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