Max*_*Max 0 c++ stack pointers
标题.我正在使用的功能是这样的:
void GetVideoCardInfo(int* memoryVar, char* cardName)
{
strcpy_s(cardName, 128, m_videoCardDescription);
*memoryVar = m_videoCardMemory;
return;
}
Run Code Online (Sandbox Code Playgroud)
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;
}
Run Code Online (Sandbox Code Playgroud)
当我运行该程序时,会弹出一个消息框,显示运行时检查失败#2和标题.如果有人可以提前帮助谢谢.
您正在复制128个字符char cardDesc,仅代表1个字符.
您应该将类型更改cardDesc为char数组:
char cardDesc[128];
// ...
m_D3D->GetVideoCardInfo(&cardMem, cardDesc);
// ^ no &
Run Code Online (Sandbox Code Playgroud)