【发布时间】:2023-04-06 08:24:02
【问题描述】:
标题。 我正在使用的功能是这样的:
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;
}
当我运行程序时,会弹出一个消息框,上面写着 Runtime-check failure #2 和标题。如果有人可以提供帮助,请提前致谢。
【问题讨论】:
-
cardDesc只能容纳一个字符。你读了 128 个字符,你会过得很糟糕。 -
有没有办法让它能够存储 128 个字符但仍可用作指针?
-
怎么样
char cardDesc[128];.... -
你为什么在 C++ 中搞乱 C 风格的字符串?
std::string有什么问题?