va_end()

va_end ist in der Standard Argumente definiert, die in C über stdarg.h, bzw in C++ über cstdarg eingebunden wird.

Funktion

va_end() gibt eine Argumenten-Liste (va_list (Datentyp)) wieder frei.

Signatur

#include <stdarg.h>
void va_end( va_list list );

list: Die freizugebende Liste

Fehlerquellen

Eine mit va_start() initialisierte Liste muss mit va_end() wieder freigegeben werden, bevor die Funktion verlassen wird. Hierauf ist zu achten, insbesondere, wenn die Funktion mehrere Ausgänge besitzt.

Beispiel

#include <stdio.h>
#include <stdarg.h>
 
int add( int first, ... )
{
  va_list list;
  va_start( list, first );
 
  int result = first;
  int temp; 
 
  do
  {
    temp = va_arg( list, int ); 
    result += temp;
  }  
  while( temp > 0 );
 
  va_end( list );
 
  return result;   
}
 
int main (void)
{
  printf( "Ergebnis: %d\n", add( 1, 2, 3, 4, 5, 0 ) );
 
  return 0;
}

siehe auch