是否需要使用外部嵌套结构作为 malloc 的参数?

问题描述 投票:0回答:1

我有一个将物品添加到玩家库存中的功能,以及一个显示库存的功能。当尝试显示库存时,它将打印商品的名称,然后出现分段错误。我认为将内存添加到库存后会在某个地方丢失。所以我想确保我正确使用了 malloc。项目结构有剑和药水类型的联合,因此两者都可以是项目。 Sword 结构体有一个 Sword_type 结构体。考虑到这些信息,这会按预期工作吗?

Malloc((项目)的大小)

尝试确保包含删除项目的功能,以便能够释放内存。在此之前,项目名称根本无法正确显示。它将用随机字符代替“青铜剑”。现在我已经显示了项目名称,但出现了分段错误。

c struct malloc union inventory
1个回答
0
投票

在您发布更多详细信息之前,我只能告诉您:

malloc()
的参数不是一个结构,它是一个大小

不存在

size of(type)
,只有
sizeof(type)

sizeof()
运算符将为您提供类型的大小。如果类型是联合,那么它的大小是联合成员中最大的。

所以,你的问题不在于

malloc( sizeof(type) );
,你的问题很可能完全在其他地方。

© www.soinside.com 2019 - 2024. All rights reserved.