Dvourozměrné pole nelze uložit do pointeru

Ahoj, chci velice jednoduchou věc…přistupovat přes ten pointer ke všem prvkům toho dvourozměrného pole např.:

x = play_melody[0][0];
y = play_melody[0][1];
z = play_melody[1][0];
q = play_melody[1][1];

Takhle mi to jde:

volatile static uint16_t *play_melody = melodie_1[2];
y = *play_melody;
x = *(play_melody+1);
z = *(play_melody+2);
q = *(play_melody+3);

Tím, že to jde i jinak se tím už nebudu zabývat…jen jsem chtěl vyzkoušet něco novýho.