c++ - 写入特定数据成员的内存时出错

标签 c++ oop

好的,我有一个结构 TextBlock,它模拟在屏幕上移动文本 block 。这是标题:

struct TextBlock
{
    RECT textArea;
    RECT rectArea;
    double whatBlock;
    double x;
    double y;
    double angle;
    double speed;
    double width;
    double height;
    char *word;
    bool stuck;
};

当它像这样时,一切都很好。当我添加另一个我需要的成员时,问题就来了。它的工作方式是我有两个 TextBlock 数组。第一个是给移动的,第二个是给不动的,表示移动的需要去哪里。这些词都是随机的,从一个句子变成一个困惑,所以这个数据成员将被设置(注释掉)到属于移动 block 的静态 block 的索引,所以我知道它什么时候在正确的位置。
int whatBlock;
创建这个之后,我遍历所有创建的对象并设置
tb[i][j].whatBlock = 0;//与正在设置的其他数据成员相同的区域,移动文本 stb[i][j].whatBlock = 0;//静态文本 block

当我尝试运行它时,没有对数据成员做任何其他事情,它出现了一个错误:

The instruction at [address] referenced memory at [different address]. The memory could not be "written".

请注意,如果我不尝试修改它,而只是创建数据成员,它就可以工作。

在即将完成并遇到大量此类问题的这一点上,我对这个程序有点厌倦了 >.> 任何对此的帮助都将不胜感激。

编辑:此问题现已修复。我用解释回复了接受的答案,但它带来了另一个问题,即使它不影响这个程序。

最佳答案

  • 强制重建一切。相对于定义 TextBlock 的头文件,您的目标文件可能已过时

  • 如果这不能解决问题,请在调试器下运行您的程序并查看错误指令是什么。这将允许您修复程序,或者您可以使用 mroe 信息再次询问。

关于c++ - 写入特定数据成员的内存时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7557941/

相关文章:

javascript - 根据名称实例化 javascript 对象

C++虚拟克隆方法,异常继承

php - 由数据库行组成的对象

c++ - Qt C++ 应用程序 : self autostart installation in Linux

c++ - 指针可以在函数调用期间转换为数组吗?

C++ 制作通用接口(interface)

python - Python 中的通用类工厂

C++ char 数组的动态数组

c++ - 变量不能明确

oop - 为什么观察者设计模式通常被描绘成一对多?