Пример 5.

Следующая программ выделяет память для хранения массива из 1000 целочисленных значений. Затем она заносит в массив значения от 1 до 1000, выводя их на экран. Потом программа освобождает эту память и распределяет память для массива из 2000 значений с плавающей точкой, занося в массив значения от 1.0 до 2000.0:

#include "stdafx.h"

#include <iostream>

using namespace std;

const int n=1000;

int main()

{

float *array2;

int *array1 = new int[n];

int i;

if (array1!=NULL)

{

for (i = 0; i < n; i++)

array1[i]=i+1;

for (i = 0; i < n; i++)

cout<<array1[i]<<' ';

delete array1;

}

 

cout <<endl;

array2=new float[2*n];

if (array2 != NULL)

{

for (i = 0; i < 2*n; i++)

array2[i]=(i+1)*1.0;

for (i = 0; i < 2*n; i++)

cout << array2[i] << ' ' ;

delete array2;

}

cout <<endl;

return 0;

 

}

Как правило, ваша программа должна освобождать память с помощью оператора deleteпо мере того, как память становится ей не нужной.

Выводы:

1. Способность выделять память динамически во время выполнения снимает с ваших программ зависимость от фиксированных размеров массивов.

2. Если оператор newуспешно выделяет требуемую вашей программой память, он возвращает указатель на начало области этой памяти.

3. Если оператор newне может выделить требуемую вашей программой память, он возвращает NULL-указатель, который содержит значение 0.

4. Каждый раз, когда ваша программа распределяет память динамически с использованием оператора new, она должна проверять значение возвращаемого оператором newуказателя, чтобы определить, не равен ли он NULL, что указывает на невозможность выделения памяти.

5. Используя указатель на массив, ваша программа может обращаться к памяти, выделенной с помощью оператора new.

6. Оператор newвыделяет память из блока неиспользуемой памяти, называемой свободной памятью.

7. В зависимости от вашей операционной системы и модели памяти компилятора размер свободной памяти может быть различным. В среде MS-DOS свободная память может быть ограничена 64 Кбайт.

8. Если вашей программе больше не нужна выделенная память, она должна освободить ее (вернуть в свободную память), используя оператор delete.








Дата добавления: 2015-02-10; просмотров: 575;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.