Arduino 从函数返回数组
Ammar Ali
2023年10月12日
本教程将讨论通过修改 Arduino 中的现有数组来从函数返回数组。
Arduino 从函数返回数组
在 Arduino 中,我们可以初始化一个给定大小的数组;初始化数组后,我们可以使用函数添加或替换数组的值。
如果我们想在函数中初始化并创建一个数组,然后在调用函数时返回它,我们必须使用动态内存分配,这是使用 malloc()
和 free()
函数完成的,并且我们还必须使用 Arduino 中的指针。
问题是如果我们使用动态内存分配从函数创建并返回数组,结果可能会因为内存泄漏和悬空指针而改变。因此,最好使用函数初始化数组并更改其值,而不是从函数返回整个数组。
例如,让我们初始化一个具有恒定整数大小的数组,然后创建一个函数来更改数组值。请参阅下面的代码。
const int size = 10;
int MyArray[size];
void CreateArray() {
for (int i = 0; i < size; i++) {
MyArray[i] = i;
}
}
void setup() {
Serial.begin(9600);
CreateArray();
for (int i = 0; i < size; i++) {
Serial.println(MyArray[i]);
}
}
void loop() {}
输出:
0
1
2
3
4
5
6
7
8
9
在上面的代码中,我们使用常量整数来初始化数组,因为我们必须使用常量整数来初始化数组,如果我们不使用常量整数,Arduino 会报错。我们没有在数组中存储任何值,但是我们也可以在初始化数组时存储值。
如果我们不在数组中存储任何值,则数组将使用 NULL
值进行初始化。我们创建了 CreateArray()
函数来将值存储在数组中。
CreateArray()
返回类型是 void
,这意味着我们不想返回任何东西,因为我们只想将值存储在数组中。如果我们想返回一些东西,我们可以改变返回类型;比如,如果我们想返回一个整数值,我们可以定义 int
返回类型。
我们使用 for
循环将值存储在数组中,但我们也可以手动将值存储在数组中。我们在 setup()
函数中调用 CreateArray()
函数来更改数组的值,然后再使用它来打印它们。
我们使用 Arduino 的串行监视器来打印数组的值,正如我们在输出中看到的那样,数组中存在十个值。
作者: Ammar Ali