Puntatori ... deep inside

Stimolato dal desio, e dall'internazional intervento di tuxduino ho prodotto un'altro interessante frammento di codice:

 struct a_Struct
  {
    byte  a1[2];
    byte  a2[2];
    byte  a3[2];
  };

    uint16_t buffer[7]= {0x0201,0x0403,0x0605,0x0807,0x0a09,0x0c0b,0x0e0d};

    a_Struct * g = (a_Struct*)&buffer[2];
    
    Serial.println(g->a1[0],HEX); // output generato : 5
    Serial.println(g->a1[1],HEX); // output generato : 6
    Serial.println(g->a2[0],HEX); // output generato : 7
    Serial.println(g->a2[1],HEX); // output generato : 8
    Serial.println(g->a3[0],HEX); // output generato : 9
    Serial.println(g->a3[1],HEX); // output generato : A
    
    g->a1[0]= 0xAF;
    g->a1[1]= 0xFA;
    g->a2[0]= 0xBE;
    g->a2[1]= 0xEB;
    g->a3[0]= 0xCD;
    g->a3[1]= 0xDC;
    
    uint8_t* c = (uint8_t*)&buffer;
    
    for(int i = 0 ; i < sizeof(buffer);i++)
    { 
      Serial.print(*c,HEX);
      Serial.print(" - ");
      c++;
    }
    Serial.println();

// output generato :  1 - 2 - 3 - 4 - AF - FA - BE - EB - CD - DC - B - C - D - E -

Quindi alla fine sono riuscito a creare una sorta di quello che volevo, una struttura contenente degli array di byte che riesco ad inizializzare con l'indirizzo iniziale del buffer.

Ora mi piacerebbe capire con esattezza quanta memoria viene allocata per il puntatore alla struttura, in teoria solo 2 byte, giusto?