阵列存储的分段故障
segmentation fault with array storage
我正在为CS入门课程开发一个基本版本的碎砖器。init Bricks方法实例化一系列对象类型为GRect的砖。数组brick_array用于存储这些对象,以便稍后我可以判断球是否击中了其中一个对象。我确信,当我尝试将对象存储在数组中时,会发生默认错误。
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
}
}
您可能需要为GRect 实现复制构造函数
GRect(GRect const ©);
要测试这一点,您可以尝试替换:
GRect brick = newGRect(column*40, 0, 37, 20);
带有:
brick_Array[column] = newGRect(column*40, 0, 37, 20);
您可能还应该避免将变量作为非引用发送到方法,因为这会导致它们被复制,例如GWindow window
应该替换为GWindow &window
。
相关文章:
- 分段故障(堆芯转储)矢量
- 数组的指针从不分段故障
- Windows 10-使用gtkmm-3.0库和g++[包括再现]的分段故障
- 分段故障 运行C++代码时出现 SIGSEGV
- 分段故障背包问题
- 分段故障 11,从类函数显示动态 C 字符串
- 面临分段故障 使用 ffmpeg 读取视频时,因为"pFormatCtx-> streams [i]-> codecpar"的地址0x00
- 在C++中,当指向删除和指向不同对象时,分段故障指针
- 对程序故障进行分段
- 分段故障说明
- 分段故障(核心转储)-不知道为什么
- 分段故障线程
- hiredis SET遇到分段故障
- 分段故障,合并排序算法
- 多线程程序中的分段故障和gdb回溯上的不完整信息
- 到达主C++之前分段故障
- 分段故障核心使用 IF流转储
- 使用向量的移动键盘排列(分段故障)
- 在二进制树插入和遍历期间,我得到了分段故障
- 分段故障在类之间返回整数