Вот такой код:
#include <iostream>
int main(){
for(;;){
int* ptr = new (std::nothrow) int;
if(ptr == 0){
std::cout << 0 << std::endl;
break;
}
}
std::cin.get();
return 0;
}
Однако эта программа по-прежнему выдает исключение std :: bac_alloc, хотя new вызывается с параметром std :: nothrow. Эта программа скомпилирована в Visual C ++ 2010. Почему возникает исключение?
Изменить:
При использовании g ++ в Windows из mingw все работает нормально.