将数组设置为不同大小的不同数组

The*_*nny 1 c++ arrays arduino arduino-ide arduino-uno

所以我一直在为我的arduino编程,这是c ++的一些变体.我一直在编写一个程序来勾选每个4位七段显示器的数字.我一直无法将引脚[]设置为不同长度的不同阵列.

例如,显示一个装置将打开2个引脚,这些引脚在阵列中表示int one[] = {1,2};并显示四个引脚int four[] = {1,2,3,4};.

我一直在尝试的是:

int pins[] = null;
int one[] = {1,2};
int four[] = {1,2,3,4};
switch(num) {
    case 1: pins = one; break;
    case 4: pins = four; break;
}
Run Code Online (Sandbox Code Playgroud)

然而,这已经造成了问题,并且不允许我上传它,因为事情到处都是破坏.

我对c ++知之甚少,只是它与Java类似,我对此非常了解.

我觉得我喂养的鲨鱼没有足够的保护,我的代码中的这一点让我烦恼.

我的问题是你如何初始化一个数组,但稍后再改变它?

use*_*031 5

如上所述,不会编译,因为pins没有定义的大小,并且不允许将数组分配给另一个不同大小的数组.但是,您可以使用指向数组的指针来实现您尝试的操作:

int one[] = {1,2};
int four[] = {1,2,3,4};
int* pins = nullptr; // use NULL if your compiler doesn't support C++11.
size_t pinslen = 0;

switch (num) {
case 1:
    pins = one;
    pinslen = sizeof one;
    break;
case 4:
    pins = four;
    pinslen = sizeof four;
    break;
}
Run Code Online (Sandbox Code Playgroud)