微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法将值分配给2D指针数组的元素分段故障

如何解决无法将值分配给2D指针数组的元素分段故障

编辑:发现错误。不要打扰。

在我的程序中,我需要在Room的{​​{1}}中初始化Dungeon。由于某种原因,我遇到了分段错误错误,但是测试项目中的完全相同的代码可以正确运行。

layout

还有其他项目:

// RPG.project

class Room {};

class Dungeon
{
public:
    Dungeon(const int n,const int m) // Dungeon layout is initialized
    {
        this->layout = new Room** [n]; 
        for ( unsigned int i = 0; i < n; i++ )
            layout[i] = new Room* [m];
      
        // All of the rooms are made nullptr as being non-existant at this point.                                                                                   
        for ( unsigned int i = 0; i < n; i++ )
        {
            for ( unsigned int j = 0; j < m; j++ )
            {
                layout[i][j] = nullptr;
            }
        }
    }

    Room*** getLayout() { return this->layout; }    

private:
    Room*** layout;
};

class Builder
{
private:
    Dungeon* dungeon;    

public:
    void buildroom(int x,int y) // ERROR here
    {
        Room*** temp = this->dungeon->getLayout();
        temp[x][y] = new Room(); // Segmentation fault error
    }
};

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。