错误:初始化时无法将'const unsigned char(*)[]]转换为'const unsigned char(*)[]'

时间:2019-03-12 11:33:50

标签: c++ c

我正在尝试构建一种基本的数据库(或更确切地说是数据存储)结构,以存储不同项目到特定测试用例的映射,这些映射要在Arduino上运行-因此,存储空间效率是一个主要问题。

所以我写了几个typedef和structs,头文件就可以编译了。但是,一旦我想创建结构实例来实际存储数据,就会遇到几个错误,这些错误似乎都与第一个错误非常相似:

error: cannot convert 'const uint8_t (*)[7] {aka const unsigned char (*)[7]}' to 'const uint8_t (*)[] {aka const unsigned char (*)[]}' in initialization

要重现此错误,仅以下4行是相关的:

-在我的头文件中 (请注意,注释表明,我期望这行是什么,而不是它是什么;))

typedef const uint8_t Testcase[]; //array of const uint8_t

typedef Testcase *Sequence[]; //array of pointer to Testcase (aka array of pointer to array of const uint8_t)

-并在我的代码文件中:

const Testcase ic_1tc_1 = {0x00, 0x10, 0x01, 0x61, 0x00, 0x30, 0x07};

Sequence s1 = {&ic_1tc_1};

该错误发生在我的代码文件的第二行中,我希望创建一个带有指向测试用例的单个指针元素的数组。

我发现的所有类似问题均与“ const”关键字有关,我已经对它进行了整理(我认为),因此它们对我没有帮助。

我理解编译器告诉我的错误 “我无法将长度为7的数组转换为任意长度的数组” 这对我来说毫无意义。

有人可以向我解释一下吗?

0 个答案:

没有答案