2-dimensionales TCHAR-Array



  • Hi Leute,

    ich hab ein 2-dim. TCHAR-Array mit

    TCHAR bla[][MAX_LOADSTRING] = {L"bla1", L"bla2"};
    

    Das möchte ich jetzt in eine Funktion übergeben. Bis jetzt habe ich es so (mehr oder weniger verzweifelt) versucht:

    int test(TCHAR *buffer){}
    int test(TCHAR **buffer){}
    int test(TCHAR buffer[][]){}
    

    Aber das klappt leider alles nicht...

    Und wie bekomme ich jetzt die Anzahl der Member raus? Ich hab es bisher so versucht, aber ich konnte es leider nicht testen, da der aufruf nicht klappt:

    int nCount = ((int) (((double)sizeof(buffer)) / ((double)sizeof(TCHAR))));
    

    Ich hoffe ihr könnt mir helfen
    mfG TheCrip : D



  • Nutze mal weitere Features der Sprache, z.B.

    typedef TCHAR MeinString[MAX_LOADSTRING];
    

    Dann ist auch die Definition der Funktion leichter:

    int test(MeinString *x)
    

    Größenbestimmung geht (nur für Arrays, NICHT für Zeiger) z.B.

    int anzahlelemente=_countof(bla);
    int anzahlelemente=sizeof bla/sizeof*bla;
    

    Hinweis: Arrays in Funktionsparametern werden automatisch zu Zeigern, d.h. innerhalb der Funktion kannst du mit den beiden Varianten nicht arbeiten, d.h. du musst die Anzahl mitliefern oder eine Endekennung zufügen und die dann auswerten.


Anmelden zum Antworten