Anfängerfrage pointer, array



  • Hallo,

    ich habe eine Funktion die folgende Form hat:

    static int xtc_receivebits(int *buf, int nbits) {
    
    unsigned char * cbuf;
    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
    .
    .
    .
    

    soweit ich verstehe, wird die Variable "buf" "gecastet", also Datentypumwandlung. Wo ich leider nicht schlau werde, was die Addition 3*sizeof(*buf) genau bewirkt. buf ist ein Array mit den Werten 0.

    Kann mir jmd bitte erklären, was genau die Addition bewirkt? 🙄 Vielen Dank! 🙂



  • Das ist eine umständliche Art und Weise,

    unsigned char* cbuf = (unsigned char*) &buf[3];
    

    zu schreiben.



  • Bashar schrieb:

    Das ist eine umständliche Art und Weise,

    unsigned char* cbuf = (unsigned char*) &buf[3];
    

    zu schreiben.

    pfffff 😮 ....vielen dank. ohne deine hilfe, hätte ich noch stunden rumgesucht und probiert, wenn ich überhaupt drauf gekommen wäre 🙂


Anmelden zum Antworten