我想通过函数中的指针写入颜色数组中的元素。该功能是:C:向Raspberry Pi上的数组指针写入时出现分段错误
void setColor(int color1[3],int color2[3], int *red, int *green, int *blue) {
int redInc = (color2[1]-color1[1])/range;
int greenInc = (color2[2]-color1[2])/range;
int blueInc = (color2[3]-color1[3])/range;
int i = 0;
while (i < range) {
*(red+i) = color1[1] + i*redInc;
printf("This is red: %s\n",*(red+i));
*(green+i) = color1[2] + i*greenInc;
*(blue+i) = color1[3] + i*blueInc;
i++;
}
return;}
范围被定义为21里面的主循环的常数:
int color1[3] = {255,0,0};
int color2[3] = {0,255,0};
int red[21] = {0};
int green[21] = {0};
int blue[21] = {0};
setColor(color1,color2,red,green,blue);
我已经尽我的Linux机器上的代码,它似乎工作,但它在我的树莓派上分割故障。这是我想如何访问数组?
'color1 [3]'超出范围。 – mch
几乎所有的编程语言中,数组索引都从0开始,而不是1。 – Barmar
投入一些时间学习使用宏而不是丑陋的数字时玩数组 – Zakir