在C OS X中分配大空间

Allocating big space in C++ OS X

本文关键字:分配 空间 OS      更新时间:2023-10-16

我正在学习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);