gpt4 book ai didi

c - 如何有效地使用双空指针

转载 作者:太空宇宙 更新时间:2023-11-04 07:05:39 25 4
gpt4 key购买 nike

请让我知道我做错了什么。

我有两个结构

struct a{
few elements;
void **ptr;
};

struct b {
few elements;
};

I tried to allocate memory for these two structures like
func2(struct a *aptr)
{
struct b *bptr = kmalloc(sizeof(struct b), GFP_KERNEL);
aptr->ptr = (void *)&bptr;
// here *(aptr->ptr) is pointing correctly to bptr.
}
func1()
{
struct a *aptr = kmalloc(sizeof(struct a), GFP_KERNEL);
func2(aptr);
/*though aptr->ptr is pointing correctly, *(aptr->ptr) is no more pointing to bptr*/
}

我正在尝试这种方式,以便我可以有效地使用 container_of。如果我的实现有误,请纠正我。

观察:如果我在函数范围外声明 struct b *bptr*(aptr->ptr) 会正确指向 bptr。

最佳答案

这里

 aptr->ptr = (void *)&bptr;

您分配局部变量的地址,当函数返回时该地址超出范围。您可能是想分配 bptr 而不是 &bptr 吗?

关于c - 如何有效地使用双空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33237462/

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