Variable Parameterliste weiterreichen



  • Hallo zusammen, ich habe eine Methode, welche ihrerseits die C - Funktion sprintf aufruft. Nun weis ich aber nicht, wie ich die variable Parameterliste übergeben kann...

    void Irgendwas::outer(char *strFmt,...){
    sprintf(this->pStr,strFmt,...);
    }

    So hats leider nicht funktioniert, wie mache ich denn das korrekt?



  • Für solche Zwecke gibt es (zumindest bei der printf-Familie) die Funktion man: vsprintf:

    void test(char* fmt,...)
    {
      va_list args;
      va_start(args,fmt);
      char data[1000];
      vsprintf(data,fmt,args);
      ...
    }
    


  • Hi!

    als Argument Pointer.

    grüße



  • So garnicht, aber Du kannst die variable Parameterliste als va_list weitergeben an die Funktion vsprintf:

    #include <stdarg.h>
    void Irgendwas::outer(char *strFmt,...)
    {
      va_list args;
      va_start(args, strFmt);
      vsprintf(pStr, strFmt, args);
      va_end(args);
    }
    

    EDIT: Also ehrlich, 15 Minuten lang antwortet keiner, und dann.... 😃


Anmelden zum Antworten