# Управление массивом. Добавление элемента (push-back)

{% hint style="info" %}
что бы добавить элемент в конец массива нужно:\
1\) создать копию массива с увеличением размера на 1. size+1\
2\) присвоить последнему элементу значение которое хотим.\
3\) size++
{% endhint %}

`int*`<mark style="color:blue;">`&`</mark>` ``arr` - передаем наш динамический массив с добавлением ссылки  <mark style="color:blue;">`&`</mark> , что бы указатель менялся за пределами функции

`int`` `<mark style="color:blue;">`&`</mark>`size` - передаем размер массива. <mark style="color:blue;">`&`</mark> - ссылка что бы изменялось значение за пределами функции

`const int value` - значение которое добавляем в массив

```cpp
void push_back(int*& arr, int& size, const int value)
{

    int *arr2 = new int[size + 1]; // создаем новый массив с большим размером
    
    for (int i = 0; i < size; i++)
    {
        arr2[i] = arr[i];  // копируем элементы первого массива в новый
    }

    
    arr2[size] = value; // присваиваем значение в последний элемент

    delete arr; // удаляем прошлый массив
    arr = arr2; // меняем указатель
    size++;
}
```

```cpp
push_back(arr,size,777);
```
