在C OS X中分配大空间
Allocating big space in C++ OS X
我正在学习C 中的异常,我正在尝试:
int main(int argc, char* argv[]) {
double *p_x;
try {
p_x = new double[100000000000000];
delete p_x;
} catch (bad_alloc& ex) {
cout << "Memory not allocated !!n";
}
return 0;
}
例外被捕获,但执行此代码时还有其他内容。输出看起来像:
Memory not allocated !!
Test9(13814) malloc: *** mmap(size=800000000000000) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
我不知道它是否与G 版本有关,或者与OS X相关。我的意思是,该程序正在捕获例外,但是其他内容是什么?
它与glibc相关。您可以使用mallopt(3)
命令禁用这些消息:
mallopt(M_CHECK_ACTION, 0);
相关文章:
- STL算法和back_inserter可以预分配空间吗?
- 如何为结构字段动态分配字符空间
- 为阵列分配空间
- 如何为标准功能分配空间并做记忆
- 分配空间时,我会收到非常不同的地址
- 如何为字符串数组实例变量动态分配空间
- 在C++中根据需要为数据结构分配空间
- 函数在无法分配空间时返回值
- 更改 malloc 函数分配空间
- 使用 valuePtr() 等为 Eigen3 稀疏矩阵分配空间
- 正在为结构内部的列表分配空间
- 如果您使用new来分配空间,您必须在何时释放它
- 正在为返回的引用分配空间
- 为指向结构的指针的矢量分配空间
- 在C++构造函数中,我必须为实例字段分配空间吗
- 如何在Windows上为C/ c++中的文件预先分配空间
- 如何为未在协议中赋值的可选字段分配空间
- C++,在for循环中分配空间,可能进行内存泄漏验证
- 如何在现代C++中有效地为指向虚拟基类的指针向量分配空间
- 已分配空间中的链表