Главная->Інформатика та програмування->Содержание->Управление памятью: операции new и delete

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 10) онлайн

Управление памятью: операции new и delete

Мы рассмотрели много примеров, в которых массивы использовались без учета размера памяти. В строке

int arr1 [ 100 ];

зарезервирована память для 100 элементов типа int. Массивы являются разум- ным подходом к хранению данных, но они имеют серьезный недостаток: мы должны знать при написании программы, насколько большой массив нам нужен. Мы не можем ждать, пока программа запустится и определит размер массива. Следующий подход работать не будет:

cin >> size; // получим желаемый размер массива

int arr [ size ]; // ошибка, размер массива должен быть константой!

Компилятор требует, чтобы значение размерности массива было константой.

Но во многих ситуациях нам неизвестно требуемое количество памяти до запуска программы. Например, нам нужно будет сохранить строку, которую на- печатает пользователь программы. В этой ситуации мы можем определить раз- мер массива большим, но это может привести к перерасходу памяти. (В главе 15 «Стандартная библиотека шаблонов (STL)» мы будем использовать вектор, являющийся видом расширяемого массива.)

 

24