Динамическая память в C++

Единственная вещь, которая может быть страшнее, чем программист с отвёрткой или разработчик аппаратуры с программой — это пользователь с проволочной пилой и паролем суперпользователя.
Элизабет Звики.

Здесь вы можете скачать парочку интересных андроид приложений

Основы работы с динамической памятью

Для динамических переменных резервируется специальное место в оперативной памяти компьютера называемое "кучей". Размеры кучи ограничены конфигурацией компьютера, и, если программа создает слишком много динамических переменных, то кучи может не хватить. Поэтому следует всегда проверять успешность создания новой динамической переменной. Если вся память в куче израсходована, то операция new не может создать переменную и возвращает специальный указатель NULL.Пример:

double* a;
a=new double;
if (a==NULL){cout<<"\n Не хватает ОП";
             exit(1);
            }

Чтобы это заработало, нужно подключить библиотеку <cstddef>, т.к. в ней содержится указатель NULL. Также нужно подключить библиотеку <cstdlib>, в которой находится функция exit.

Динамические массивы

Динамические массивы– это массивы, размеры которых определяются в процессе работы программы. Когда для массива выделяется ОП, имя массива воспринимается как указатель того типа, к которому относятся элементы массива.

Для того чтобы создать динамический массив, для начала его нужно объявить:

type* a;
Затем выделяем ОП под него:
a=new type[n];//n- количество элементов массива, 
              //type- тип элементов массива
Пример:

Функция для ввода вектора:

double * inputv(int n)
{int i;
 double * a;//Объявление
 a=new double[n];//Выделение ОП
  //Проверка успешности создания массива:
  if(a==NULL){cout<<"\n Не хватает оперативной памяти под вектор";
              exit(1);
             }
  //Ввод с клавиатуры элементов массива:
  for(i=0;i< n;i++)
  cin>>a[i];
  return a;
}


На главную
C++ новичку     Алфавит и лексемы     Операции в C++     Библиотеки     Потоки ввода- вывода     Разветвляющийся вычислительный процесс
     Циклы    Указатели     Основы работы с динамической памятью     Работа с файлами     Некоторые типичные функции

Разработчик сайта: Филатов Максим

Hosted by uCoz