gpt4 book ai didi

c - void* 指向结构?

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

我想创建一个 void* 1d 数组,每个单元格中的每个指针都指向我编写的结构(由于某些原因,它必须是 void* 数组,而不是 sturct 数组),所以到目前为止,我写了这个:

typedef struct
{
int weight;
int amount;

} Banana;

void* makeBanana(){
Banana new;
new.weight = 1;
new.amount = 6;

void* p = &new; //its Legal??
return p;

现在,在那之后,我想将这个 p 存储在一个动态的 void* 指针数组中,每个 void* 指针指向另一个 Banana,我这样写:

void* ptrToBananaArray  = (void*)malloc(3); //3 is just example of lenght
ptr[0] = makeBanana();

这样可以吗?如果不是,正确的方法是什么?


使用 void* 而不是 Banana* 的原因:这是因为我在其他地方有一个通用代码,它只获得 void* 类型,所以这里是香蕉,但将来它还想获得番茄或洋葱或其他东西,所以它必须是 void*

最佳答案

返回指向函数内部创建的变量的指针是非法的,因为保存变量的内存不再是静态分配的,不同的变量可能会覆盖它。

关于c - void* 指向结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27343911/

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