我在一个类中有一个函数“ printWorld”,可打印一个名为“ world”的2D数组。每当我使用此功能并在终端中运行程序时,它似乎都会打印该数组,但随后会出现大量的随机数,最后显示“ Segmentation Fault”,并关闭程序。一旦一切正常,我从代码中删除了此功能。

void printWorld()
{
    for(int r = 0; r <= (2*WORLD_SIZE + 1); r++)
    {
        for(int c = 0; r <= (2*WORLD_SIZE + 1); c++)
            cout << world[r][c];
        cout << endl;
    }
}


这是在类中编写函数的方式

game.printWorld();


这就是我调用该函数的方式。

This is what is showing in termninal

如果有帮助,请将该数组初始化为0。

最佳答案

正如其他人已经指出的那样,错误是内部for循环,您在其中比较了“ r
这将导致无限循环。

将内部for循环更改为:

    for(int c = 0; c <= (2*WORLD_SIZE + 1); c++)
        cout << world[r][c];
    cout << endl;


那应该为你做:)

关于c++ - 类功能的段错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47642270/

10-11 23:14
查看更多