读取位置0x00C4702C时发生访问冲突
Access violation reading location 0x00C4702C
我的代码有一些问题。
void gMenu_BP()
{
CLS // #define system("cls");
cout << "Ive opened my backpack and saw...nn";
cout << ":NamettQuantityttPricenn";
for (int i = 0; i < sizeof(Items); i++)
{
try{
if(Items[i].owd==1)
{
cout <<i+1<<">"<<Items[i].Name<<"t"<<Items[i].q<<"ttt"<<Items[i].price<<endl;
}
}
catch(exception ex) {
cout << "error";
}
}
//cout<<"====================================================";
cout <<"1.Use Itemn2.Remove Itemn3.Back to Journey";
int volba01;
cin >> volba01;
}
它的作用是显示所有者id为1的所有对象。所有这些都将被写入控制台。我的问题是:
Unhandled exception at 0x00C3A2CA in Journey.exe:
0xC0000005: Access violation reading location 0x00C4702C.
它甚至在VC++之外也会崩溃。请注意,我这样做效果很好,但后来我开始在文本渲染方面遇到问题(每80mil一个字符)。然后我禁用了一些与printf()相关的函数;然后这个错误甚至在这里开始出现。它就像一种病毒。在例外情况下,它向我展示了VC++输出.c文件和其他一些系统文件。我不知道该怎么办,转到C#会有点困难。
编辑:好了,现在它工作了。我已将循环标头更改为
for (int i = 0; i < sizeof(Items)/sizeof(player.Items[0]); i++)
这是一个奇怪的解决方案,但效果很好。
解决方案:
我定义了structItems的最大实例(元素)。
#define MAX_OBJECTS 20
我的structItems实例:
ItemData Items[MAX_OBJECTS];
然后将循环标题更改为:
for (int i = 0; i < MAX_OBJECTS; i++)
是的,非常简单的解决方案,发布一个问题毫无价值。
感谢任何人的帮助。
希望我帮助过有同样问题的人。
相关文章:
- 写入位置0x0000000C时发生访问冲突
- 0xC0000005:访问冲突写入位置0xCDCDCDCD动态分配错误
- 0xC0000005:访问冲突读取位置 0x00000000. 重载 == 运算符的问题
- (此函数用于计算 SMA).在 FA.exe 中0x00509159引发异常: 0xC0000005:访问冲突读取位置0
- 0xC0000005:读取位置0xCDCDCDC1时发生访问冲突
- 0xC0000005:读取位置0xCDCDCDCD时发生访问冲突
- 读取类的析构函数中的位置时发生访问冲突
- 在尝试使用CUDA分配内存时,我遇到了访问冲突写入位置错误
- 创建 2D 数组0xCCCCCCCC访问冲突写入位置
- 0x0F50DF58:0xC0000005:访问冲突读取位置0x0047CA04时未处理的异常
- 在 DLL 中嵌入 Python:Py_DECREF列表对象时访问冲突读取位置
- 在 C 代码中调用 Python 函数时第三次出现访问冲突写入位置错误
- 0xC0000005:访问冲突读取位置0x0000000000000008
- 使用动态数组访问冲突写入位置
- C++访问冲突读取位置0xDDDDDDCD当我尝试删除已更新的数组时
- 使用向量的函数崩溃,调试器说访问冲突读取位置
- vc++ 访问冲突读取位置
- C++ - 智能指针 - 访问冲突读取位置0xDDDDDDDD
- C++访问冲突读取位置错误
- 调用隔离后访问冲突执行位置0x0000000000000000:New()