多维数组分割错误

Segmentation fault with multidimensional arrays

本文关键字:错误 分割 数组      更新时间:2023-10-16

我试着在这个网站上搜索为什么会出现这个错误的可能答案,但找不到确切的答案。

对于这段小代码,我基本上让程序从文件中读取输入。(它能读取每一个字符。)然后将其存储在多维数组(2D)中,最后打印出该数组。

这是我的代码:

ifstream file;
char gamemap[20][26];
file.open("maze-hard.txt");
if(!file.is_open())
{
    cout << "Error: Cannot open file" << endl;
    return 0;
}
    for(int i = 0; i < 20; i++) 
    {
        for(int j = 0; j < 26; i++)
        {
            gamemap[i][j] = file.get();
            cout << gamemap[i][j];
        }
        cout << endl;
    }

它有点成功,但我得到了一个分割错误。我不知道问题出在哪里。这次别对我太苛刻了。我对c++并不精通

 for(int j = 0; j < 26; i++)

我将把i++替换为j++

在第二个循环中增加j,而不是I;)

虽然可能与这个特定的段错误没有严格的关系,但我还是要检查一下,以确保读取是安全的。

if(file.good())
{
    gamemap[i][j] = file.get();
    //etc etc
}