标题。 我正在使用的功能是这样的:
void GetVideoCardInfo(int* memoryVar, char* cardName)
{
strcpy_s(cardName, 128, m_videoCardDescription);
*memoryVar = m_videoCardMemory;
return;
}
m_videoCardDescription 是一个“128 个字符长”的字符数组,其中包含我的视频卡的描述。这是我调用函数的地方:
bool writeGPUnameDesc() {
char cardDesc;
int cardMem;
m_D3D->GetVideoCardInfo(&cardMem, &cardDesc);
std::ofstream myfile;
myfile.open("gpuNameAndDesc.txt");
myfile << "Graphics card name: " << cardDesc;
myfile << " - Graphics card memory: " << cardMem;
myfile.close();
return true;
}
当我运行该程序时,会弹出一个消息框,提示运行时检查失败 #2 和标题。如果有人可以提供帮助,请提前致谢。
最佳答案
您正在将 128 个字符复制到 char cardDesc
中,它仅代表 1 个字符。
您应该将cardDesc
的类型更改为字符数组:
char cardDesc[128];
// ...
m_D3D->GetVideoCardInfo(&cardMem, cardDesc);
// ^ no &
关于c++ - 调试错误 : stack around the variable 'cardDesc' was corrupted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53421804/