compiler-errors - 在C++中声明两个512x512 2D数组时出现段错误

标签 compiler-errors segmentation-fault

我的main()函数是-

int main(int argc, char *argv[]) {
    std::cout << "Hello, World!" << std::endl;
    int real[512][512] = {0};
    int imaginary[512][512] = {0};
    return 0;
}

它给了我 segmentation fault ,但是如果我注释掉2D数组之一,它就可以工作。我正在处理图像,以前使用256x256数组也可以,但是我不知道为什么会出现该错误。

最佳答案

您可能会用完堆栈空间,因为数组很大。 (所以这是一个非常适合堆栈溢出的问题:-))

将声明移出主函数,以便将数组放入普通内存中。

看例如在这里获取更多信息:

https://craftofcoding.wordpress.com/2015/12/07/memory-in-c-the-stack-the-heap-and-static/

关于compiler-errors - 在C++中声明两个512x512 2D数组时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53331295/

相关文章:

java - Java错误: cannot find symbol method add(Date,int)

c - 在段错误中获取和从链接列表中删除结果

c - 用C打开文件时出现段错误

c# - C#在数学表达式中使用未分配的变量

c - 我无法弄清楚我的代码中存在什么错误 - C 中的段错误核心转储错误

c - 矩阵优化 - 使用内在函数和循环展开时出现段错误

c - C 中的指针数组和段错误(核心转储)

Java:表达式的非法开始

c - 关于重复符号的奇怪 ld 错误

java - “找不到符号”或“无法解析符号”错误是什么意思?