logo search
Posobie_Cpp

3.1.5. Динамическое определение одномерных массивов.

До сих пор мы рассматривали примеры определения массивов, в которых память под массивы резервировалась во время компиляции.

Предположим, что создается программа, в которой массив может потребоваться, а может - нет, в зависимости от хода выполнения программы. При обычном подходе массив создается путем объявления. Память под него, независимо от использования массива, будет отведена на этапе компиляции, что не очень рационально.

В С++ реализована и другая возможность распределения памяти - непосредственно во время выполнения программы с помощью оператора new.

// пример динамического создания одномерного массива

i = 10; // в ходе выполнения программы определена размерность массива

double * mass = new double [i];// определен динамический массив mass[10]

После окончания работы с массивом следует освободить память с помощью оператора delete :

delete [] mass;

Следующие правила помогут вам избежать ошибок при использовании операторов new и delete: