我是 C/C 初學者,正在嘗試構建一個簡單的腳本。我在 Arduino 上運行它。
#include <Arduino.h>
int pin_locations[3][3] = {
{8, 5, 4},
{9, 6, 3},
{10, 7, 2}
};
void setup() {
for (int i=0; i<3; i) {
for (int j=0; j<3; j) {
pinMode(pin_locations[i][j], OUTPUT);
}
}
}
void convert_drawing_to_LEDS(int drawing[]) {
for (int i=0; i<3; i) {
for (int j=0; j<3; j) {
if (drawing[i][j] == 1) {
digitalWrite(pin_locations[i][j], HIGH);
}
}
}
}
void loop() {
// drawing
int my_drawing[3][3] = {
{1, 1, 1},
{1, 0, 1},
{1, 1, 1}
};
convert_drawing_to_LEDS(my_drawing);
}
但這給了我兩個錯誤:
src/main.cpp:在函式 'void convert_drawing_to_LEDS(int*)' 中:src/main.cpp:31:23: 錯誤:陣列下標的無效型別 'int[int]' if (drawing[i][j] = = 1) { ^ src/main.cpp: 在函式 'void loop()' 中: src/main.cpp:46:37: 錯誤: 不能將 'int ( )[3]' 轉換為 'int ' 用于引數 '1 ' to 'void convert_drawing_to_LEDS(int*)'
convert_drawing_to_LEDS(my_drawing); ^ 編譯 .pio/build/uno/FrameworkArduino/WInterrupts.co *** [.pio/build/uno/src/main.cpp.o] 錯誤
誰能幫我?
謝謝!
uj5u.com熱心網友回復:
您已宣告convert_drawing_to_LEDS采用int []不是二維陣列的。這會導致引數與其在函式中的使用方式不匹配,并且還會導致傳入的實際引數與函式期望的引數不匹配。
你反而想要:
void convert_drawing_to_LEDS(int drawing[3][3]) {
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/440077.html
上一篇:指標陣列引起的記憶體泄漏?
