【发布时间】:2018-07-13 04:24:39
【问题描述】:
我正在尝试用 c 编写一个结构,将数据存储在这样的链接数组中:
typedef struct
{
u8 num;
struct value* next;
}value;
value arr[4] = {
{.num = 0, .next = (value[]){
(value){.num = 0, .next = NULL},
(value){.num = 1, .next = NULL},
(value){.num = 31, .next = NULL}
}},
{.num = 1, .next = NULL},
{.num = 2, .next = NULL},
{.num = 31, .next = NULL}
};
将有最多 6 个层次结构级别的链接数组,而不是空值。
如何在 C 中做到这一点?我做错了什么?
顺便说一句,整个结构应该是const,所以我需要用值初始化它,并且在运行时永远不要再碰它。
如果你有办法在 c++ 中做到这一点,我也可以使用它。
【问题讨论】:
-
"如何写出不同大小的六维数组?"如果我不得不处理这个问题,我会先安排咨询心理治疗师。 3 维是我的最大值。
-
这不是一个多维数组,它是一个基数树或特里树。有大量关于基数树的信息。
-
您在
struct类型上似乎缺少标签value。 -
C 还是 C++?这里很重要! C++ 方式将依赖于标准容器链:
vector<vector<vector<vector<vector<vector<uint8_t>>>>>>。在 C 中,根据您的具体要求,您可以使用链式指针数组、链式 VLA 指针或链式链表,或者... -
编译器告诉你什么?您收到的错误消息是什么?您对错误消息有什么不明白的地方?