草庐IT

12507456

全部标签

c++ - 为什么 2^80 字节的内存分配不会失败?

以下代码不会引发异常并打印“成功”。为什么?#includeintmain(){size_tsize=size_t(1024)*1024*1024*1024*1024*1024*1024*1024;char*data=newchar[size];if(data==NULL)std::cout编译器:g++(Ubuntu/Linaro4.6.3-1ubuntu5)4.6.3操作系统:Ubuntu12.04内存:8GB如果这就是它的工作方式,我如何检查我是否有足够的内存?[编辑:让我的愚蠢代码更加正确,现在如果我删除两个*1024],它至少会在x64上失败 最佳

c++ - 为什么 2^80 字节的内存分配不会失败?

以下代码不会引发异常并打印“成功”。为什么?#includeintmain(){size_tsize=size_t(1024)*1024*1024*1024*1024*1024*1024*1024;char*data=newchar[size];if(data==NULL)std::cout编译器:g++(Ubuntu/Linaro4.6.3-1ubuntu5)4.6.3操作系统:Ubuntu12.04内存:8GB如果这就是它的工作方式,我如何检查我是否有足够的内存?[编辑:让我的愚蠢代码更加正确,现在如果我删除两个*1024],它至少会在x64上失败 最佳