Задать вопрос
Din7
@Din7
Пытаюсь программировать, CGmaster - ломастер

Как спровоцировать bad_alloc?

Есть такой вот кусочек кода. Как спровоцировать bad_alloc?
type_T * new_value;
try {
new_value = new type_T;
}
catch (std::bad_alloc& ba){
std::cerr « "bad_alloc caught: " « ba.what() « std::endl;
return false;
}
  • Вопрос задан
  • 234 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@MiiNiPaa
throw bad_alloc
Ответ написан
Комментировать
AtomKrieg
@AtomKrieg
Давай я поищу в Google за тебя
Если у вас класс, то пусть он попробует захватить много памяти. Я проделал такие манипуляции с вашим кодом и все получилось.
try {

		size_t sz = SIZE_MAX;
		auto new_value = new int[sz];

	}
	catch (std::bad_alloc& ba){
		
		std::cout << "bad_alloc caught: " << ba.what() << std::endl;
		return false;

	}
Ответ написан
@werktone
class type_T {
    int *p;
public:
    type_T() {
        p = new int[100000000000000000];
        std::cout << p[0] << std::endl;
    }
};
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы