Можно ли менять длину массива в arduino? Мне требуется создать функцию, возвращающую массив, но длина массива не фиксирована. Могу ли я менять длину массива в коде?

21 Авг 2019 в 06:27
291 +1
0
Ответы
1

В Arduino нельзя динамически изменять длину массива после его объявления. Однако вы можете объявить массив достаточно большого размера (например, максимально возможного) и затем использовать только часть массива, которая вам нужна.

Если вы хотите вернуть массив из функции с переменной длиной, вы можете воспользоваться указателями или возвращать объект класса, который хранит массив и его размер. Вот пример:

#define MAX_SIZE 100
int* createArray(int size) {
int* arr = new int[size];
return arr;
}
void setup() {
int length = 5; // Длина массива
int* myArray = createArray(length);
// Используйте myArray как обычный массив
for (int i = 0; i < length; i++) {
myArray[i] = i;
}
// Освобождаем память
delete [] myArray;
}
void loop() {
// Ваш код здесь
}

Обратите внимание, что при использовании оператора new необходимо также позаботиться об освобождении памяти с помощью оператора delete.

20 Апр 2024 в 13:18
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир