0

在测试一个相当大的程序时,我开始在 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]

一天前工作得很好。所以,这可能是一个编译器选项。

4

1 回答 1

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;
}
于 2013-08-27T04:57:58.327 回答