gpt4 book ai didi

c - 如何将结构分配给通过参数传递的 void 指针?

转载 作者:行者123 更新时间:2023-11-30 19:11:40 24 4
gpt4 key购买 nike

在我的代码中我有一个结构

struct Test {
int a;
int b;
char c;
};

用我的函数:

int TestFunction(void* ptr){
struct Test test;
test.a = 0;
test.b = 1;
strcpy(c,"hello");

return 0;
}

现在将临时结构链接到我传入的 void ptr

struct Test* temp = (struct Test*)ptr;
struct Test test = *temp;

这是将结构与 void ptrs 链接的正确方法吗?有没有更简单的方法?

最佳答案

由于您希望能够修改指向的结构,因此您的示例代码不合适。它的作用是创建指向结构的本地副本并修改本地副本而不是原始对象。

您想做的是:

int TestFunction(void *ptr) {
struct Test *test = ptr;
test->a = 0;
test->b = 1;

return 0;
}

a->b 语法相当于 (*a).b,这意味着它引用 test 指向的任何内容。

关于c - 如何将结构分配给通过参数传递的 void 指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39442015/

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