gpt4 book ai didi

c++ - 如何访问第二个结构中 void* 指向的结构的元素

转载 作者:行者123 更新时间:2023-11-28 00:55:55 25 4
gpt4 key购买 nike

我在构造 void* 时遇到问题。我的C++代码如下:

struct BUFF_TYPE {
int a;
int b;
};
typedef struct BUFF_TYPE BUFF_TYPE;

struct REG_TYPE {
int c;
void *buff;
};
typedef struct REG_TYPE REG_TYPE;

REG_TYPE regs[20];
const BUFF_TYPE b_A = {3,5};


void func_x() {
int x,y;
regs[4].buff = (BUFF_TYPE*)&b_A;
x = regs[4].buff->a;
y = regs[4].buff->b;
}

它给了我:

error: ‘void*’ is not a pointer-to-object type

在 x 和 y 赋值中,你能告诉我如何访问那些 a 和 b 值吗?

顺便说一句,我需要 void* 因为有时我需要指向其他类型的缓冲区。

最佳答案

不要使用 void* 类型,而是使用 BUFF_TYPE*​​

如果您出于其他原因需要 void*(不太可能基于您的代码),您可以通过转换指针来解决此问题。

x = ((BUFF_TYPE*)regs[4].buff)->a;
y = ((BUFF_TYPE*)regs[4].buff)->b;

关于c++ - 如何访问第二个结构中 void* 指向的结构的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11278146/

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