Форум: Форум C++Разное
Новые темы: 00
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Оператор new
 
 автор: andrey88   (21.04.2007 в 13:39)   письмо автору
 
 

Я знаю что оператор new возврашяет NULL если не находит память, что мне делать в этой ситуации, закрывать программу ?

  Ответить  
 
 автор: cheops   (21.04.2007 в 14:37)   письмо автору
 
   для: andrey88   (21.04.2007 в 13:39)
 

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

PS Вообще говоря в современных реализациях new не возвращает NULL, а генерирует исключение bad_alloc, для того, чтобы использовать старый вариант, когда возвращается NULL следует использовать параметр оператора new - nothrow - вот тогда возвращается NULL
var = new(nothrow) double[100];

  Ответить  
 
 автор: andrey88   (23.04.2007 в 11:00)   письмо автору
 
   для: cheops   (21.04.2007 в 14:37)
 

Можно узнать, если создать

unsigned char *str;

то как выдедять память

str = new char [ 10 ];

или

str = new unsigned char [ 10 ];

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования