class File
{
public:
wstring directory;
char sha256[32] = {};
};
int main()
{
map<int, File*> AllFiles{};
wstring directory_of_files[8192];
char current_sha256[32];
//......有一大串代码,这里省略
for (int j = 0; j < fileCount; j++)
{
AllFiles[j] = new File;
GetHASH(SHA256, directory_of_files[j], current_sha256);
AllFiles[j]->directory = directory_of_files[j]; //位置a
strcpy(AllFiles[j]->sha256,current_sha256); //位置b
}
return 0;
}
在位置a处报错:
引发了异常: 读取访问权限冲突。
this 是 0x8C19E29EC0。
在位置b处报错:
0x00007FFA824956A2 (ucrtbased.dll)处(位于 6 - Verify File Consistency.exe 中)引发的异常: 0xC0000005: 写入位置 0x0000000000000028 时发生访问冲突。
class File
{
public:
wstring directory;
char sha256[32] = {};
};
int main()
{
File* AllFiles[8192];
wstring directory_of_files[8192];
char current_sha256[32];
//......有一大串代码,这里省略
for (int j = 0; j < _min(fileCount,8192); j++)
{
AllFiles[j] = new File;
assert(AllFiles[j]);
GetHASH(SHA256, directory_of_files[j], current_sha256);
AllFiles[j]->directory = directory_of_files[j]; //位置a
strncpy(AllFiles[j]->sha256,current_sha256,32); //位置b
}
return 0;
}