"Access violation reading location 0x0000000c"错误
"Access violation reading location 0x0000000c" error
代码片段:
-在对象管理器中插入实例
Object* o;
for(int i=0; i<10; i++)
{
o = new Tile(32*i, 0);
o->ID = i+2;
o_manager.Create(i+2,o);
}
o = new Player(50.,50.);
o->ID = 1;
o_manager.Create(1,o);
-从管理器插入实例到四叉树
CollisionDetector = new QuadTree(0, bounds);
for(std::map<unsigned int, Object*>::iterator it = Instances.begin(); it != Instances.end(); it++)
{
std::cout << it->second->COL << std::endl;
if(it->second->COL) //probable place of error
{
std::cout << "Object (" << it->first << ")... ";
CollisionDetector->insert(it->second);
}
std::cout << "inserted into QuadTree" << std::endl;
}
我有一个问题,原因对我来说是完全未知的。我有一个对象管理器类,我把11个实例(映射容器)。然后每一步它都会传递带有碰撞标志的实例到四叉树列表。
执行后,我收到一个错误:"Access violation reading location 0x0000000c"。
从我从stdout得到的,错误显示,而插入第11个实例到四叉树(stdout打印标志值,但不打印"对象(ID)…")。当我将实例数量减少到10或更少时,一切都正常。
如果你能给我一些建议,我将不胜感激,因为我不知道在哪里找到解决办法。对不起,我的英语不是母语。"我有一个对象管理器类,我在其中放置了11个实例(映射容器)。"
但这只是10个实例:
for(int i=0; i<10; i++)
如果这不能解决你的问题,你应该发布更多的代码。
你的问题肯定是指针是空的。0x0000000c
是成员相对于对象起始地址的地址。(可能是COL
,如果你给我们Object
的标题)
确保添加到映射中的元素不为空
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 在某些循环内使用vector.push_back时出现分段错误
- MSVC多行宏编译器错误
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- "Access violation reading location 0x0000000c"错误