Почему `e.what () `печатает« плохое распределение »?

Выражение new в блоке try вызывает на моем компьютере исключение bad_alloc .

Обратите внимание, что предложение catch получает объект исключения по значению, а не по ссылке. Почему e.what () печатает «плохое распределение» ? Я думал, что это будет разрезано.

#include <iostream>

int main()
{
    try
    {
        int* p = new int[0x1F000000];
    }
    catch(std::exception e)
    {
        std::cout << e.what() << std::endl;
    }
}
5
задан GManNickG 30 November 2011 в 23:40
поделиться