保存和加载我的模块
Saving & Loading my modules
所以我试图重写我前一段时间的旧内存类,但绊倒了strcmp语句中的一些问题。这是我的SaveModules功能:
void Memory::AddModuleToList(char* modSaveName, LPSTR ModName, int num)
{
this->Modules[num] = this->Module(ModName);
this->modNames[num] = modSaveName;
}
这就是我加载它们的方式:
DWORD Memory::LoadSavedModule(char* modName) {
for (int i = 0; i < 128; i++) {
if (strcmp(modName, modNames[i])) {
return Modules[i];
};
}
}
原因我循环到128是因为我的模块阵列有128个插槽。现在,我的代码问题是strcmp引起了follolwing错误的断点;
Access violation reading location 0xCDCDCDCD.
(完整错误)
Unhandled exception at 0x0FAF1F52 (msvcr110d.dll) in Memory Test.exe: 0xC0000005: Access violation reading location 0xCDCDCDCD.
编辑(2015-05-13):我想我可能只是弄清楚了,我的模块[128]除num以外的地方不确定,因此当使用strcmp时,它不能比较并抛出异常,我是否正确?
我如何解决它:
void Memory::AddModuleToList(char* modSaveName, LPSTR ModName, int num, bool firstTime)
{
if (firstTime) {
for (int i = 0; i < 128; i++) {
this->modNames[i] = "";
this->Modules[i] = 0;
};
};
this->Modules[num] = this->Module(ModName);
this->modNames[num] = modSaveName;
}
您不是初始化Modules
数组 - 该值0xCDCDCDCD
是由C运行时系统放置的标志,以发出信号,以发出信号。
相关文章:
- 我的神经网络不起作用 [XOR 问题]
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 我的字符计数代码计算错误.为什么
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- cmake在我的项目中所需的所有静态库都不成功
- 为什么我的代码在输出中增加了93天
- 我的简单if-else语句是如何无法访问的代码
- 为什么我的for循环不能正确获取argv
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 0-1背包代码中的错误.我的代码中有什么错误
- 当我的阵列太大时出现分段错误
- 如何确认我的constexpr表达式实际上已经在编译时执行
- 为什么二进制搜索在我的测试中不起作用
- Metatrader 5 向导无法识别我的自定义交易信号模块
- 如何判断我的过程中的哪个模块创建了哪个堆
- 保存和加载我的模块
- 如何将我的自定义模块与 Omnet++INET 的简单模块相结合
- 我的VS2013应用程序应该包括哪个C++合并模块
- 我应该如何编写我的C++,以便为C++模块做好准备
- 我的日志模块线程安全吗?