|
|
|
| Я знаю что оператор new возврашяет NULL если не находит память, что мне делать в этой ситуации, закрывать программу ? | |
|
|
|
|
|
|
|
для: andrey88
(21.04.2007 в 13:39)
| | Это зависит от того, для чего вам нужна память, можно например, попытаться освободить память внутри программы, можно сообщить пользователю, что памяти не хватает и следует закрыть часть приложений, можно попытаться использвоать вместо оперативной памяти жёсткий диск. Кроме того, память может быть нужна для осуществления какой-то операции, которая пользователю не сильно нужна и он от неё может отказаться, а вот наработанные ранее данные ему будет жалко потерять, поэтому закрытие программы не самый удачный ход... просто отмените действие, выбранное пользователем...
PS Вообще говоря в современных реализациях new не возвращает NULL, а генерирует исключение bad_alloc, для того, чтобы использовать старый вариант, когда возвращается NULL следует использовать параметр оператора new - nothrow - вот тогда возвращается NULL
var = new(nothrow) double[100]; |
| |
|
|
|
|
|
|
|
для: cheops
(21.04.2007 в 14:37)
| | Можно узнать, если создать
то как выдедять память
или
str = new unsigned char [ 10 ];
|
| |
|
|
|