Блог программиста

Опытный программист не только делится этим самым опытом, но и сам изучает что-то новое в сфере программирования и ИТ в целом и рассказывает об этом посетителям сайта!

Динамические массивы C++

Заходим в Википедию и там без лишних слов всё уже написано:

Динамическим называется массив, размер которого, при необходимости, может меняться во время исполнения программы

Но в С++ это не совсем так. Изучим подробнее.

Динамическое выделение и освобождение памяти

В С++ (в отличии от Си) используется новые операторы работы с динамической памятью:
new - для выделения памяти,
delete - для освобождения памяти.

Оператор new используется следующим образом:

new тип;  // для переменных
new тип[размер];  // для массивов

Результатом выполнения операции new будет указатель на выделенную память или NULL, в случае ошибки. Приведём, пример:

int *pvar = new int;
int *parr = new int[10];

Освобождение памяти также используется в двух формах:

delete указатель;  // для одного элемента
delete[] указатель;  // для массива

Для приведённого выше примера, освобождение памяти будет выглядеть так:

delete pvar;
delete[] parr;

Недостатки реализации динамического массива в C++

Итак, мы умеем выделять массив new, удалять его delete, а вот менять размер нет, но такой возможности и не предусмотрено в С++! Считаю это недостатком реализации. Хотя, в том же Си, если такая функция как realloc, которая позволяет это делать.

Почему так? Для более продвинутой работы с динамическими массивами были придуманы контейнеры. О них речь пойдёт чуть позже...


Отправить комментарий
Наш проект: язык Cj
Cj - язык программирования (C++ & Javascript)
Новый язык программирования, для разработки веб, мобайл, десктоп-приложений, игр... подробнее...

Хотите поддержать проект?

  • Оставляйте ссылки на наш сайт
  • Станьте спонсором проекта
подробнее...

Контакты
vk.com/sitev_ru
Skype: sitev.ru
E-mail: mike@sitev.ru
github.com/sitev

Рейтинг@Mail.ru

Besucherzahler
счетчик посещений