【发布时间】:2020-03-08 13:26:16
【问题描述】:
这越来越烦人了
我尝试解决这个问题已经够久了,但我不得不问你如何解决这个问题,因为我已经没有任何想法了。
#include <iostream>
#include <cstdarg>
using namespace std;
void add(const int &number, ...)
{
double sum = 0.0;
va_list list;
va_start(list, number);
for (int i = 0; i < number; i++)
sum += va_arg(list, double);
va_end(liste);
cout << "Sum: " << sum << endl;
}
int main()
{
add(12, 12);
}
这是我的代码。我收到错误,list 没有初始化,我收到错误,va_start 参数不能有引用类型并且不能用括号括起来。请帮忙
【问题讨论】:
-
这能回答你的问题吗? How do I fill a va_list
-
主要问题是您调用
add函数时使用了两个整数 值。更具体地说,两个int值。我不知道sizeof(int) == sizeof(double)所在的任何系统,这意味着您将在add函数中具有未定义的行为。 -
不可复制,
list在此处使用之前已初始化(或者更确切地说已填充)。va_end(liste);中有一个错字,传递的参数类型与提取的值不匹配。
标签: c++ initialization declaration