Write a program to demonstrate use of va_copy.
#include<stdio.h> #include<stdarg.h> int Calculate_sum(int,...); int main() { int sum; sum = Calculate_sum(2,10,20); printf("Sum = %d\n",sum); sum = Calculate_sum(3,10,20,30); printf("Sum = %d\n",sum); sum = Calculate_sum(4,10,20,30,40); printf("Sum = %d\n",sum); sum = Calculate_sum(5,10,20,30,40,50); printf("Sum = %d\n",sum); return 0; } int Calculate_sum(int n, ...) { va_list v,c; int sum = 0,i,num; va_start(v,n); va_copy(c,v); for(i=0;i<n;i++) { num = va_arg(c,int); sum = sum + num; } va_end(c); va_end(v); return sum; }
Output
Sum = 30 Sum = 60 Sum = 100 Sum = 150