Я видел, что ресурсы показывают два способа распределения памяти, при этом гарантируя, что памяти достаточно для завершения операции.
1) оберните операцию 'new' в try / catch, поскольку она вернет std :: bad_alloc (?)
try { ptr = new unsigned char[num_bytes]; } catch(...) {}
2) проверьте назначенный указатель на null после операции 'new'.
ptr = new unsigned char[num_bytes]; if(ptr == NULL) { ... }
Какой один прав? Они оба работают? Может быть, мне нужно сделать и 1, и 2?
Спасибо,
jbu