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

Динамический массив от статического отличается в первую очередь тем, что на момент компиляции размер динамического массива не известен, в отличие от массивов статических, для которых размер должен быть известен уже при компиляции. Типичный пример необходимости создания динамического массива - когда размер массива определяется пользовате­лем путем ввода числового значения с клавиатуры. Чтобы определить раз­ мер массива, необходимо сначала запустить программу и только после это­ го станет известно, сколько должно быть элементов в массиве. Разумеется, можно использовать в таких ситуациях статические массивы, предусмотрев в них достаточное количество элементов. Однако такой подход грешит не­ рациональным использованием системных ресурсов и не всегда приемлем. Динамические массивы реализуются посредством операторов динамического распределения памяти, В для выделения области памяти ис­пользуется оператор new, а для освобождения выделенной ранее памяти используют оператор delete. В частности, оператор нем выделяет область памяти и возвращает в качестве значения указатель на первую ячейку вы­ деленной памяти. Причем указанные операторы используются для выделе­ния памяти как для обычных переменных, так и для массивов.

Пример. Динамическое выделение памяти для переменных
#include 
using namespace std;
int main(){
int *p;
double *q;
p=new int;
q=new double(3.6);
cout << "Enter int-number: ";
cin >> *p;
cout << "Address: " << p << endl;
cout << "Value: " << *p << endl;
cout << "Address: " << q << endl;
cout << "Value: " << *q << endl;
delete p;
delete q;
return 0;
}
Пример. Динамическое выделение памяти для массивов
#include 
using namespace std;
int main(){
int *p,n;
cout << "Enter n = ";
cin >> n;
p=new int[n];
for(int i=0; i < n; i++){
 p[i]=2*i+1;
 cout << p[i] << " ";
}
delete [] p;
cout << endl;
return 0;
}
Онлайн всего: 4
Гостей: 4
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте