Hirdetés

Keresés

Új hozzászólás Aktív témák

  • kispx
    addikt

    Hi!

    regen nem programoztam c-ben, akkor is csak annyit, amennyi az egyetemhez kellett, most viszont elemkerult nemi kod, es ennek megerteseben kernem a segitsegetek

    adott egy ilyen az egyik .h file-ban
    YW_ErrorType_T YWNATIVE_GetChannelList(U32 * uCount, U32** handleList);

    a YW_ErrorType_T az U32, az U32 pedig unsigned int (typedef U32 YW_ErrorType_T; typedef unsigned int U32;)

    a kerdesem az lenne, hogy a fgv masodik parametere (**handleList) mi akar lenni? ahogy olvasgatom, a ** elvileg egy pointer-re mutato pointer, de ami engem zavar, hogy ez csak egy insugned int tipusu valtozora mutato pointer pointer-e lehet? vagyis ket int-et ad vissza az fgv, vagy azok ott lehetnek masok is? (az elso, az uCount az jo lenne int-nek, a masodik nem annyira - egy listat kellene valamilyen formaban visszaadnia, de nem tudom, milyen parameterekkel hivjam a fgv-t)

    sajnos semminemu dokumentaciom nincs a fgv-hez

    Listát vagy tömböt ad vissza? Első látásra én inkább a tömbre tippelnék..

    "a kerdesem az lenne, hogy a fgv masodik parametere (**handleList) mi akar lenni?"
    Egy kis olvasnivaló. A tömb nulladik elemére mutató pointer címe. Pl. (Szerk.: felesleges példa, jobbat írtak, de azért meghagyom)

    void f(int **y)
    {
    cout << **y;
    }

    int main()
    {
    int *x = (int*)calloc(10, sizeof(int)); //A tömb nulladik elemére mutat
    int **ptr = &x;
    f(ptr); /*vagy*/
    f(&x);
    return 0;
    }

    "vagyis ket int-et ad vissza az fgv" (a mondat második felét nem értettem :( )

    Nem feltétlenül ad vissza két int-et a fv. Az első paraméter tuti, hogy egy unsigned-ra mutató pointer lesz. (Hogy módosítja az értéket vagy sem az nem derül ki, ehhez kellett volna a dokumentációs is). A második paramétert meg fent kifejtettem.

  • Karma
    félisten

    Hi!

    regen nem programoztam c-ben, akkor is csak annyit, amennyi az egyetemhez kellett, most viszont elemkerult nemi kod, es ennek megerteseben kernem a segitsegetek

    adott egy ilyen az egyik .h file-ban
    YW_ErrorType_T YWNATIVE_GetChannelList(U32 * uCount, U32** handleList);

    a YW_ErrorType_T az U32, az U32 pedig unsigned int (typedef U32 YW_ErrorType_T; typedef unsigned int U32;)

    a kerdesem az lenne, hogy a fgv masodik parametere (**handleList) mi akar lenni? ahogy olvasgatom, a ** elvileg egy pointer-re mutato pointer, de ami engem zavar, hogy ez csak egy insugned int tipusu valtozora mutato pointer pointer-e lehet? vagyis ket int-et ad vissza az fgv, vagy azok ott lehetnek masok is? (az elso, az uCount az jo lenne int-nek, a masodik nem annyira - egy listat kellene valamilyen formaban visszaadnia, de nem tudom, milyen parameterekkel hivjam a fgv-t)

    sajnos semminemu dokumentaciom nincs a fgv-hez

    Mint adja magát a szignatúrából, ez a függvény kiad egy n-elemű tömböt valami channelhandle-ökről, külön a hosszt és külön egy pointert az új (és majd utána általad letörlendő!) tömbről. Jester01 abszolút jól írta a meghívását, csak gondoltam kiegészítem :)

    Ilyen paramétert akkor szokás használni, ha a függvény fogja létrehozni azt a tömböt, ami a lekérdezés eredményét tárolja. Te csak adsz neki egy helyet, ahova a kezdőelem pointerét elteheti.

  • Jester01
    veterán

    Hi!

    regen nem programoztam c-ben, akkor is csak annyit, amennyi az egyetemhez kellett, most viszont elemkerult nemi kod, es ennek megerteseben kernem a segitsegetek

    adott egy ilyen az egyik .h file-ban
    YW_ErrorType_T YWNATIVE_GetChannelList(U32 * uCount, U32** handleList);

    a YW_ErrorType_T az U32, az U32 pedig unsigned int (typedef U32 YW_ErrorType_T; typedef unsigned int U32;)

    a kerdesem az lenne, hogy a fgv masodik parametere (**handleList) mi akar lenni? ahogy olvasgatom, a ** elvileg egy pointer-re mutato pointer, de ami engem zavar, hogy ez csak egy insugned int tipusu valtozora mutato pointer pointer-e lehet? vagyis ket int-et ad vissza az fgv, vagy azok ott lehetnek masok is? (az elso, az uCount az jo lenne int-nek, a masodik nem annyira - egy listat kellene valamilyen formaban visszaadnia, de nem tudom, milyen parameterekkel hivjam a fgv-t)

    sajnos semminemu dokumentaciom nincs a fgv-hez

    A második paraméter egy pointerre mutató pointer ahogy mondtad, vagyis egy pointer címe:

    U32 count;
    U32* handleList;
    YWNATIVE_GetChannelList(&count, &handleList);
    for(i = 0; i < count; i += 1) {
    ... handleList[i] ...
    }

Új hozzászólás Aktív témák