所以我一直在为arduino编程,这是c ++的某种变体。我一直在编写一个程序,以在4位七段显示器的每个数字上打勾。我在将pins []设置为不同长度的不同数组时遇到了麻烦。
例如,显示1表示将打开2个接脚,它们在数组中表示,int one[] = {1,2};
并且显示4个接4个接脚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;
}
但是,这已经引起了问题,并且不允许我上传它,因为事情到处都是。
我对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;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句