我试图打印一个va_list的内容,我想传递一个数组给它,我得到了gibrish的回报
int printVA(int num_args,...);
int main(int argc, const char * argv[])
{
int numArgs = 3;
int arr [3];
arr[0]=183;
arr[1]=184;
arr[2]=15;
printVA(numArgs,arr);
return 0;
}
int printVA(int num_args,...){
va_list arg_list;
int my_arg;
va_start(arg_list, num_args);
for(int i = 0; i<num_args;i++){
my_arg = va_arg(arg_list, int);
printf("%d\n", my_arg);
}
va_end(arg_list);
return 1;
}
这就是我得到的
1606416584
15
1606416584
1条答案
按热度按时间sdnqo3pr1#
你调用的方法不正确,传递参数本身,而不是参数的数组:
或者简单地说:
另一方面,如果你真的想传递数组,
va_list
不是正确的解决方案。