我想通過函數中的指針寫入顏色數組中的元素。該功能是: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