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

21 Авг 2019 в 06:27
267 +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 Апр в 13:18
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 493 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир