gpt4 book ai didi

c - 变量参数列表打印垃圾

转载 作者:行者123 更新时间:2023-11-30 19:11:59 25 4
gpt4 key购买 nike

以下函数在控制台上打印垃圾。无法理解问题。下面是测试代码片段。

void
format(
const char* pcszFormat,
...
)
{
va_list VarArglist;

va_start(VarArglist, pcszFormat);
printf(pcszFormat, VarArglist);
va_end(VarArglist);
}


int wmain(int argc, wchar_t *argv[])
{
string strTest;
const char *pcszFormatted;

format("%x %S", 10, "Test");

//printf("\nFormatted string: %s", pcszFormatted);
getchar();
return 0;
}

最佳答案

您通过将错误类型的数据传递给 printf() 来调用未定义的行为。您应该使用 vprintf() 来处理 va_list

另外,不要忘记将 %S 更改为 %s 以便使用普通字符串,或将 "Test" 更改为 L"Test" 以便使用宽字符串,否则您将通过再次将类型错误的数据传递给 printf() 系列来调用未定义的行为 .

关于c - 变量参数列表打印垃圾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38290443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com