gpt4 book ai didi

C 试图将 void 指针转换为另一种类型

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

好的,这是代码:

//in another file

void **ptr; ptr = kmalloc(sizeof(void *) * 2);

*(ptr+0) = tf; //type trapframe *
*(ptr+1) = as; //type addrspace *

func(*ptr);

这是这个函数:

void func(void *ptr) {

struct trapframe *parentTF = ptr[0];
struct addrspace *newAS = ptr[1];
//now I wanna do stuff with parentTF and newAS

}

我得到的错误是:

warning: dereferencing `void *' pointer

感谢您的帮助。

最佳答案

如果我正确理解了您要执行的操作,那么您似乎需要更改此设置:

void func(void *ptr) {

为此:

void func(void **ptr) {

还有这个:

func(*ptr);

为此:

func(ptr);

请注意,*(ptr+0)ptr[0] 是同义词,*(ptr+1)ptr[1].

关于C 试图将 void 指针转换为另一种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9424427/

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