До сих пор для данных, которые использовались, память выделялась при объявлении переменных. Такой способ выделения памяти называется статическим.
Однако иногда размер данных становится известным только во время выполнения программы. Например, если в процессе какого-либо измерения выполняется сохранение данных через определенные промежутки времени, объем этих данных зависит от времени, прошедшего с начала измерения. В таком случае рациональнее распределять память компьютера во время измерения. Процедура выделения памяти во время выполнения программы называется динамическим распределением (выделением) памяти.
В C++ существует два способа динамического выделения памяти. Один из них, унаследованный от С, использует стандартные библиотечные функции malloc и free. Другой – операторы new и delete, которые отсутствуют в С. Для обоих способов необходимо применение переменных типа указатель. Как правило, конкретные адреса, содержащиеся в этих переменных, не используются.