在一个C程序中,我有一个函数将消息写入日志文件。
LogResult writeLog(const char* format, ...)
那个函数将它的参数作为'format'字符串和一个'va_list'传递给'vfprintf()'。我突然意识到如果有人传递一个未终止的字符串,比如:
const char unterminatedString[5] = {'h', 'e', 'l', 'l', 'o'};
writeLog("Log message: %s", unterminatedString);
有没有什么方法可以预防这种情况发生?
std::string
。 - Zyx 2000