首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组存储的分段故障

数组存储的分段故障
EN

Stack Overflow用户
提问于 2014-04-19 01:45:59
回答 1查看 59关注 0票数 0

我正在为CS入门课程编写一个破砖机的原始版本。方法init Bricks实例化了一系列对象类型为GRect的砖块。然后数组brick_Array用来存储这些对象,这样以后我就可以知道那个球是否击中了其中一个对象。我非常确定,当我尝试将对象存储在数组中时,会发生默认错误。

代码语言:javascript
复制
GRect brick_Array[COLS];

void initBricks(GWindow window, GRect brick_Array[])
{
    for (int column = 0; column < COLS; column++)
    {
        GRect brick = newGRect(column*40, 0, 37, 20);
        setColor(brick, "BLACK");
        setFilled(brick, true);
        add(window, brick);

        brick_Array[column] = brick;//segmentation fault
    }
}
EN

回答 1

Stack Overflow用户

发布于 2014-04-19 02:01:17

您可能需要实现GRect的复制构造函数

代码语言:javascript
复制
GRect(GRect const &copy);

要测试这一点,您可以尝试替换:

代码语言:javascript
复制
GRect brick = newGRect(column*40, 0, 37, 20);

通过以下方式:

代码语言:javascript
复制
brick_Array[column] = newGRect(column*40, 0, 37, 20);

您可能还应该避免将变量作为非引用发送到方法,因为这会导致它们被复制,例如,应该用GWindow &window替换GWindow window

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23159331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档