unr*_*ity 4 c++ arrays pointers
我正在使用一个库,对于某个特定功能涉及变量,如下所示:
extern const u8 foo[];
extern const u8 bar[];
Run Code Online (Sandbox Code Playgroud)
我不允许以任何方式重命名这些变量.
但是,我希望能够通过数组(或其他类似的方法)访问这些变量,这样我就不需要不断地将这些变量的新实例硬编码到我的主代码中.
我创建数组的第一次尝试如下:
const u8* pl[] = {
&foo,
&bar
};
Run Code Online (Sandbox Code Playgroud)
这给了我错误cannot convert 'const u8 (*)[]' to 'const u8*' in initialization,并在其他地方和一些谷歌搜索的帮助下,我将我的数组更改为:
u8 (*pl)[] = {
&foo,
&bar
};
Run Code Online (Sandbox Code Playgroud)
编译后我现在得到错误scalar object 'pl' requires one element in initializer.
有没有人对我做错了什么有任何想法?谢谢.
指针数组只有阵列工作,如果foo和bar具有完全相同的大小和大小是在编译时在你的翻译单元闻名.
const u8 (*pl[])[32] = {&foo, &bar};
Run Code Online (Sandbox Code Playgroud)
如果不是这种情况,则必须使用指向字节的指针数组.
const u8 *pl[] = {foo, bar};
Run Code Online (Sandbox Code Playgroud)