我试图bad_alloc通过将一些否定参数传递给new[]. 当传递小的负数时,我得到了我所希望的 - a bad_alloc。但是,当通过时-1,我可以看到我的对象被构造了数千次(我在构造函数中打印静态计数器)并且应用程序以段错误终止。
new[]将有符号整数转换为size_t,-1的最大值size_t也是-2,maximum - 1以此类推。
那么为什么new[]在接收到一些巨大的数字时抛出异常,但在接收到最大值时尝试分配size_t呢?1111...1和 和1111...0有什么不一样new[]?:)
提前致谢!