gpt4 book ai didi

c++ - 声明一个指向 void* 二维数组的指针

转载 作者:搜寻专家 更新时间:2023-10-31 01:21:28 26 4
gpt4 key购买 nike

我无法弄清楚如何声明指向 void* 数组的指针。 (我不能使用STL容器之类的,因为它是一个嵌入式系统。)

我有一些数据,我正试图将它们组合到一个结构中。大多是内置的数据类型,然后是这两个数组。第一个,

char *testpanel_desc[] = {...};

不是问题。在我的结构中,我存储了一个指向该数组的指针,如下所示:

struct MyStruct
{
...
char** panelDesc;
};

但是还有这个:

 void *testpanel_pointers[][4] = {...};

而且我无法想出一种方法来定义我可以将此数组分配给的结构成员。 void*** 不起作用,因为原始声明中的 4。

最佳答案

让生活更简单一点,使用 typedef

identity<void*[4]>::type *panelDesc;

或等效

typedef void *type[4];
type *panelDesc;

我怀疑你知道以下是什么意思,但只要说它是等价的就足够了

void *(*panelDesc)[4];

请注意,根据类型,它不是“指向 void* 的二维数组的指针”,很像 char** 不是“指向 char 的一维数组的指针” *”。但是保持你在一维情况下的做法(指向第一个元素),这就是你需要的声明。

关于c++ - 声明一个指向 void* 二维数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3788126/

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