Выделение памяти под массив

Выделение памяти под массив производится следующим образом:

<Указатель> = new <Тип данных>[<Количество элементов>];

Освободить выделенную память можно так:

delete [] <Указатель>;

Обратите внимание на то, что при освобождении памяти количество элементов не указывается. Пример выделения памяти под массив приведен в листинге 3.15.

Листинг 3.15. Динамическое выделение памяти под массив

#include <iostream>
#include <new>
#include <clocale>
#include <process.h>

int main() {
   std::setlocale(LC_ALL, "Russian_Russia.1251");
   const int ARR_SIZE = 3;      // Размер массива
   int *p = nullptr;            // Создаем указатель
   try {
      p = new int[ARR_SIZE];    // Выделяем память
   }
   catch (std::bad_alloc &ex) {
      std::cerr << "Не удалось выделить память" << std::endl;
      exit(1);                  // Выходим при ошибке
   }
   // Нумеруем элементы массива от 1 до 3
   for (int i = 0; i < ARR_SIZE; ++i) { // Пользуемся памятью
      p[i] = i + 1;
   }
   // Выводим значения
   for (int i = 0; i < ARR_SIZE; ++i) {
      std::cout << p[i] << std::endl;
   }
   delete [] p;                 // Освобождаем память
   p = nullptr;                 // Обнуляем указатель
   return 0;
}

Учебник C++ (MinGW-W64)
Учебник C++ (MinGW-W64) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов