Arduino 从函数返回数组

Ammar Ali 2023年10月12日
Arduino 从函数返回数组

本教程将讨论通过修改 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
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相关文章 - Arduino Function