title: Variadic Adding Function C
body: <p>I'm writing a simple variadic function that adds together a series of ints and returns the sum. I'm having a bit of trouble understanding how it works and my code doesn't seem to work though I feel I'm in the right direction with my code. (Posted below) The specifications of this function are that it takes at least one param and the last param is always a zero (as seen called in the main). I was also told, based upon my machine, that I wouldn't necessarily get the output I'm looking for which, as you could imagine, further complicates my situation. Some assistance with correcting my Sum() function would be greatly appreciated.</p>
  
  <p>EDIT:
  This is supposed to be done w/o the use of stdarg.h header and thus no va_arg functions.</p>
  
  <pre><code>int Sum(int a, ... ) {
     int sum = 0, *addy = &amp;a;
  
     while (*addy) {
        sum += *addy;
        addy += sizeof(a);
     }
  
     return sum;
  }
  
  
  int main() {
     printf("%d %d %d %d\n", Sum(0), Sum(3, 5, 6, 7, 0),
     Sum(7, 2, 42, 3, 5, -4, 0), Sum(-1, 9, 12, 123, -213, 42, 7, 2, 0));
  }
  //Expected output: 0 21 55 -19
  //My output: 0 32770 32770 32776
  </code></pre>