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类似,我对此非常了解.
我觉得我喂养的鲨鱼没有足够的保护,我的代码中的这一点让我烦恼.
我的问题是你如何初始化一个数组,但稍后再改变它?
如上所述,不会编译,因为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)