gpt4 book ai didi

c++ - 为什么这会给我一个段错误?

转载 作者:太空宇宙 更新时间:2023-11-04 14:58:09 25 4
gpt4 key购买 nike

这个:

bool grid[1280][1024];
for (int x = 0; x<1280; x++)
{
for (int y = 0; y<1024; y++)
{
grid[x][y] = false;
}
}

工作正常,但是

bool grid[1280][1024];
bool grid2[1280][1024];

for (int x = 0; x<1280; x++)
{
for (int y = 0; y<1024; y++)
{
grid[x][y] = false;
grid2[x][y] = false;
}
}

给我一​​个段错误。为什么?

最佳答案

可能堆栈空间不足,您的第二个示例在我的电脑上也崩溃了。尝试在堆上分配,或者更好,使用适当的容器类:

#include <array>
#include <vector>

typedef std::array<bool, 1280> line;

int main()
{
std::vector<line> grid(1024);
std::vector<line> grid2(1024);

// no initialization to false necessary
}

请注意我是如何切换宽度和高度的。您可能希望您的元素以这种方式对齐以确保快速线性访问。

关于c++ - 为什么这会给我一个段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4004225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com