内存分配错误,可能在GDB中

时间:2013-08-27 04:50:38

标签: c++ xcode memory-management

在测试相当大的程序时,我开始在Xcode 4.6.3中遇到BAD_ACCESS错误。我将错误追溯到以下几点:

int main(int argc, const char * argv[])
{
    float test1[1024][1536];
    float test2[340][1536];
    std::cout << "Made it up to this point!\n";

    return 0;
}

上述程序运行正常。但是如果我将数组大小增加到[340] [1536]之外,它将会崩溃

EXC_BAD_ACCESS(code=2, address=0x7fff00000de4)

显然,调试器无法为程序分配足够的内存。关于如何解决问题的任何想法?

编辑:我还发现我在静态分配上遇到错误,例如

float a[123][456]

前一天运作良好。所以,这可能是一个编译器选项。

1 个答案:

答案 0 :(得分:1)

由于不能多次调用main,因此不会因为使这些数组静态而丢失任何东西

int main(int argc, const char * argv[])
{
    static float test1[1024][1536];
    static float test2[340][1536];
    std::cout << "Made it up to this point!\n";

    return 0;
}