РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
652 of 815 menu

Оператор new

Оператор new выделяет память в куче для одного объекта или массива объектов и возвращает указатель на начало выделенного блока. Первым параметром оператор принимает тип данных, для которого нужно выделить память, а при выделении массива во вторые квадратные скобки передается количество элементов. При успешном выделении памяти оператор возвращает указатель на выделенный участок, а при неудаче выбрасывает исключение std::bad_alloc.

Синтаксис

// выделение памяти для одного объекта type* ptr = new type; // выделение памяти для одного объекта с инициализацией type* ptr = new type(value); // выделение памяти для массива объектов type* ptr = new type[count];

Пример

Давайте выделим память для одного числа типа int и запишем в него значение 42:

#include <iostream> using namespace std; int main() { int* ptr = new int(42); cout << *ptr << endl; delete ptr; return 0; }

Результат выполнения кода:

42

Пример

Давайте выделим память для массива из 5 чисел и заполним его значениями:

#include <iostream> using namespace std; int main() { int* arr = new int[5]; for (int i = 0; i < 5; i++) { arr[i] = i + 1; } for (int i = 0; i < 5; i++) { cout << arr[i] << " "; } cout << endl; delete[] arr; return 0; }

Результат выполнения кода:

1 2 3 4 5

Пример

Давайте выделим память для строки std::string и выведем ее на экран:

#include <iostream> #include <string> using namespace std; int main() { string* str = new string("abcde"); cout << *str << endl; delete str; return 0; }

Результат выполнения кода:

"abcde"

Смотрите также

  • оператор delete,
    который освобождает память одного объекта
  • оператор new[],
    который выделяет память для массива объектов
  • оператор delete[],
    который освобождает память массива объектов
  • оператор placement new,
    который создает объект в уже выделенной памяти
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить