C++ 使用Arduino的不同大小的多维数组

C++ 使用Arduino的不同大小的多维数组,c++,arduino,C++,Arduino,我想有一个多维数组,允许不同的大小。 例如: int x[][][] = {{{1,2},{2,3}},{{1,2}},{{4,5},{2,7},{1,1}}}; 这些值在编译时是已知的,不会更改。 我希望能够访问像val=x[2][0][1]这样的值 最好的办法是什么?我已经习惯了java/php,在这里做这样的事情很简单。 谢谢我想你可以用“老式(上坡双向)的方式”来做这件事: 当然,它不会阻止您访问无效的数组元素-这样做会产生seg错误(因为x中未使用的元素可能是无效的指针)。谢谢Flo

我想有一个多维数组,允许不同的大小。 例如:

int x[][][] = {{{1,2},{2,3}},{{1,2}},{{4,5},{2,7},{1,1}}};
这些值在编译时是已知的,不会更改。 我希望能够访问像val=x[2][0][1]这样的值

最好的办法是什么?我已经习惯了java/php,在这里做这样的事情很简单。
谢谢

我想你可以用“老式(上坡双向)的方式”来做这件事:

当然,它不会阻止您访问无效的数组元素-这样做会产生seg错误(因为
x
中未使用的元素可能是无效的指针)。

谢谢Floris。 我决定将所有值加载到一个数组中,如

{1,2,2,3,1,2,4,5,2,7,1,1}
第二个数组存储每个第一维度的长度,如

{2,1,3}

第三维的长度总是2,所以我将把这个数字乘以2。我将创建一个helper类,这样我就可以做一些像getX(2,0)这样的事情,它将返回4,还有另一个像getLength(0)这样的函数,它将返回2。

您似乎想要一个“不规则”(不规则)数组,或者您是否将大括号放错了位置?是的,第一个元素的长度为2,第二个元素的长度为1,第三个3Helper类是当数组足够大时可以使用的方法。这完全取决于你的边界条件——速度、维护能力、内存占用。不同的标准将导致不同的优化。很高兴你找到了适合你的东西。
{1,2,2,3,1,2,4,5,2,7,1,1}
{2,1,3}