[gelöst] Zweidimensionales Array als Zeiger auf Zeiger an Funktion



  • Hallöchen,

    ich habe ein zweidimensionales Array, dessen jeweilige Adresse ich an eine Funktion übergeben will, die dieses Argument als Zeiger auf Zeiger erwartet. Ich habe sowas schon gemacht, weiß aber überhaupt nicht mehr wie. Hab mich dann der Einfachheit halber an eine einfache Zuweisung begeben und verstehe jetzt nicht, warum die eine Zuweisung funzt und die andere nicht:

    wchar_t szFinsql[3][100];
    
            wcscpy_s(szFinsql[0], L"String");
    
    wchar_t*  ptest1 = szFinsql[0];
    wchar_t** test= &ptest1;
    

    Das läuft. Bedeutet doch, das szFinsql[0] ein Zeiger ist.

    wchar_t szFinsql[3][100];
            wcscpy_s(szFinsql[0], L"String");
    
    wchar_t** test = &szFinsql[0];
    

    Aber warum geht das zweite Beispiel dann nicht? Wenn szFinsql[0] ein Zeiger ist, dann ist doch &szFinsql[0] der Zeiger auf den Zeiger - oder nicht?

    Danke fürs Reinschauen

    Gruß
    Kai



  • _Bongo schrieb:

    Das läuft. Bedeutet doch, das szFinsql[0] ein Zeiger ist.

    Nö, das ist ein Array. Zwar kann man ein Array implizit in einen Zeiger auf sein erstes Element konvertieren, aber das war es auch schon.

    Wenn du eine Funktion hast, die ein Array von Zeigern erwartet, musst du erstmal ein solches erstellen.


Anmelden zum Antworten