我无法弄清楚如何声明指向 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/