小编Kla*_*Kid的帖子

C++,为什么我在修改新分配的对象后会出现访问冲突?

好吧,所以我正在研究一款游戏,并在今天重构了一些代码之后遇到了内存问题.

它使用基于组件的设计,我正在修改组件的分配方式并将其传递给实体.最初一些组件被分配为实体中的成员变量,但现在我想将它们分配到别处并通过指针传递给实体.

您可以看到我如何使用我的项目中的示例代码实现此操作.我基本上遍历所有实体并为它们分配组件.问题是我在第6次迭代"启动""instanceObject"的第一行遇到了访问冲突,并且不明白为什么.使用调试器,它看起来不像任何变量指向无效的地址.

这是我正在做的创建实体和组件.

for (unsigned int i = 0; i < 512; ++i) {
    InstanceObject* _pInstanceObject = new InstanceObject;

    // Initialize temporary variables
    XMFLOAT3 _position, _rotation;
    float _angle = (i / 512.0f) * (2.0f * XM_PI),
          _scale = (float)pResourceManager->numberGenerator.GetInt(50, 5);

    _position.x = 100000.0f * cos(_angle) + pResourceManager->numberGenerator.GetInt(50000, -25000);
    _position.y =(float) pResourceManager->numberGenerator.GetInt(50000, -25000);
    _position.z = 100000.0f * sin(_angle) + pResourceManager->numberGenerator.GetInt(50000, -25000);

    _rotation.x = (XM_PI * 2) * (pResourceManager->numberGenerator.GetInt(100, 0) / 100.0f);
    _rotation.y = (XM_PI * 2) * (pResourceManager->numberGenerator.GetInt(100, 0) / …
Run Code Online (Sandbox Code Playgroud)

c++ memory-management

5
推荐指数
1
解决办法
1086
查看次数

标签 统计

c++ ×1

memory-management ×1