В Arduino размер массива определяется на этапе компиляции и его нельзя изменить динамически по мере добавления новых элементов.
Однако, вы можете использовать динамическую память, как показано в примере ниже:
```cpp
int* array; // Указатель на массив
int arraySize; // Текущий размер массива
void setup() {
arraySize = 5; // Начальный размер массива
array = new int[arraySize]; // Выделение памяти для массива
// Инициализация элементов массива
for (int i = 0; i < arraySize; i++) {
array[i] = i;
}
}
void loop() {
// Добавление нового элемента
addElement(10);
// Печать элементов массива
for (int i = 0; i < arraySize; i++) {
Serial.println(array[i]);
}
delete[] array; // Освобождение памяти массива
while (1); // Бесконечный цикл
}
void addElement(int value) {
// Создание нового временного массива, размер которого больше на 1
int* tempArray = new int[arraySize + 1];
// Копирование элементов из старого массива в новый
for (int i = 0; i < arraySize; i++) {
tempArray[i] = array[i];
}
// Добавление нового элемента в конец массива
tempArray[arraySize] = value;
delete[] array; // Освобождение старой памяти массива
array = tempArray; // Присвоение указателю на новый массив
arraySize++; // Увеличение размера массива
}
```
В этом примере мы используем динамическую память для создания массива и добавления новых элементов. При добавлении нового элемента мы создаем новый временный массив большего размера, копируем в него элементы из старого массива, добавляем новый элемент и освобождаем память старого массива. Потом присваиваем указатель на новый массив указателю `array` и увеличиваем значение `arraySize` на 1.