Arduino Rückgabe Array von Funktion
In diesem Tutorial wird die Rückgabe eines Arrays von einer Funktion durch Ändern eines vorhandenen Arrays in Arduino erläutert.
Arduino Rückgabe eines Arrays aus einer Funktion
In Arduino können wir ein Array mit einer bestimmten Größe initialisieren; Nach der Initialisierung eines Arrays können wir mithilfe einer Funktion Werte des Arrays hinzufügen oder ersetzen.
Wenn wir ein Array innerhalb einer Funktion initialisieren und erstellen und es dann zurückgeben möchten, wenn die Funktion aufgerufen wird, müssen wir die dynamische Speicherzuweisung verwenden, die mit den Funktionen malloc()
und free()
durchgeführt wird, und Wir müssen auch die Zeiger in Arduino verwenden.
Das Problem ist, wenn wir ein Array von einer Funktion mit dynamischer Speicherzuweisung erstellen und zurückgeben, kann sich das Ergebnis aufgrund von Speicherlecks und hängenden Zeigern ändern. Daher ist es am besten, ein Array zu initialisieren und seine Werte mit einer Funktion zu ändern, anstatt ein ganzes Array von einer Funktion zurückzugeben.
Lassen Sie uns beispielsweise ein Array mit einer konstanten ganzzahligen Größe initialisieren und dann eine Funktion erstellen, um die Array-Werte zu ändern. Siehe Code unten.
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() {}
Ausgabe:
0
1
2
3
4
5
6
7
8
9
Im obigen Code haben wir das Array mit einer konstanten Ganzzahl initialisiert, weil wir eine konstante Ganzzahl verwenden müssen, um ein Array zu initialisieren, und wenn wir keine konstante Ganzzahl verwenden, zeigt Arduino einen Fehler an. Wir haben keine Werte im Array gespeichert, aber wir können auch Werte speichern, wenn wir ein Array initialisieren.
Wenn wir keine Werte in einem Array speichern, wird das Array mit NULL
-Werten initialisiert. Wir haben die Funktion CreateArray()
erstellt, um Werte im Array zu speichern.
Der Rückgabetyp von CreateArray()
ist void
, was bedeutet, dass wir nichts zurückgeben wollen, weil wir nur Werte im Array speichern wollen. Wir können den Rückgabetyp ändern, wenn wir etwas zurückgeben möchten; Wenn wir beispielsweise einen ganzzahligen Wert zurückgeben möchten, können wir den Rückgabetyp int
definieren.
Wir haben eine for
-Schleife verwendet, um Werte im Array zu speichern, aber wir können Werte auch manuell im Array speichern. Wir haben die Funktion CreateArray()
innerhalb der Funktion setup()
aufgerufen, um die Werte des Arrays zu ändern, bevor wir sie zum Drucken verwenden.
Wir haben den seriellen Monitor von Arduino verwendet, um die Werte des Arrays zu drucken, und wie wir in der Ausgabe sehen können, sind zehn Werte im Array vorhanden.