variable Anzahl von Argumenten



  • Hallo zusammen

    ich sitze gerade an einem seltsamen Problem.

    void foo2( const char *pStr, ... )
    {
      va_list va;
      va_start( va, pStr );
      // Ausgabe
      vprintf( pStr, va );
      va_end( va ); 
    };
    
    void foo1( const char *pStr, ... )
    {
      va_list va;
      va_start( va, pStr );
      // Weiter geben
      foo2( pStr, va );
      va_end( va ); 
    };
    
    int main( int argc, char *argv[] )
    {
      // Fuktioniert wunderbar
      foo2( "Hello %s!", "World" );
      // Hier wird Müll ausgegeben
      foo1( "Hello %s!", "World" );
      return 0;
    };
    

    Wenn foo2 direkt aufrufe funktioniert alles wunderbar. Nur wenn ich foo1 aufrufe und so die variable Argumentenliste erst durch eine weitere Funktion durchgeschliffen wird, wird letztendlich nur Müll ausgegeben. Hat jemand von euch eine Idee?



  • Ich glaub das hier erklärt es ganz gut.



  • Hi TactX, danke. Werde ich mir gleich mal anschauen.


Anmelden zum Antworten