【发布时间】:2016-04-07 14:04:24
【问题描述】:
我只是想编写一个带有可变数量参数的非常简单的函数,这样我就可以编写一个类似于 printf 的函数来进行赋值。查看va_list 的文档后,我不确定为什么这段代码不断给我运行时错误:
这是我的代码:
void print(string sOne , ...);
void main()
{
print("first string", "second string", "third String");
system("pause");
}
void print(string sOne , ...)
{
va_list arguments;
va_start(arguments, sOne);
while ((va_arg(arguments, int)) != 0)
{
string printString = va_arg(arguments, string);
cout << printString;
}
va_end(arguments);
}
【问题讨论】:
-
请将您的运行时错误作为问题的一部分发布。
-
@RickSmith 我在我的系统上添加的错误中,它是由
va_arg的不当使用引起的 -
根据调用堆栈,错误发生在哪里?
-
@ivan_pozdeev 上线:
string printString = va_arg(arguments, string); -
感谢您发布错误。请编辑您的问题以不使用您的错误图像。这将使以后更容易搜索您的问题。
标签: c++ arguments variable-assignment variadic-functions