Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 储蓄及;加载我的模块_C++_Strcmp - Fatal编程技术网

C++ 储蓄及;加载我的模块

C++ 储蓄及;加载我的模块,c++,strcmp,C++,Strcmp,所以我正试图重写前一段时间制作的旧内存类,但在strcmp语句中遇到了一些问题。 这是我的SaveModules功能: void Memory::AddModuleToList(char* modSaveName, LPSTR ModName, int num) { this->Modules[num] = this->Module(ModName); this->modNames[num] = modSaveName; } 这就是我加载它们的方式:

所以我正试图重写前一段时间制作的旧内存类,但在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];
        };
    }
}
(完全错误)

编辑(2015-05-13): 我想我可能已经弄明白了,除了Num,我的模块[128]在任何地方都没有定义,所以当使用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;
}
void Memory::AddModuleToList(char*modSaveName、LPSTR ModName、int num、bool firstTime)
{
如果(第一次){
对于(int i=0;i<128;i++){
此->模块名称[i]=“”;
该->模块[i]=0;
};
};
此->模块[num]=此->模块(ModName);
此->modNames[num]=modSaveName;
}

您没有初始化
模块
数组-该值
0xCDCDCDCD
是C运行时系统放在那里的一个标志,表示内存未初始化。

模块[]是如何初始化的?看起来像一个未初始化的指针…只是我添加的编辑,当我想得更多时,我意识到,对不起。
Unhandled exception at 0x0FAF1F52 (msvcr110d.dll) in Memory Test.exe: 0xC0000005: Access violation reading location 0xCDCDCDCD.
    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;
}