Dvourozměrné pole nelze uložit do pointeru

Ahoj mám dvourozměrné pole:

static uint16_t melodie_1][2] = {
  { 500  , 100},
  { 500 ,  100},
  { 500  , 100},
  { 500  , 100},
  { 500  , 100}
  };

Toto pole bych chtěl uložit do pointeru, ale ať dělám co dělám tak se mi to nedaří. Zkusil jsem něco takového se všemi možnými možnostmi co mě napadly, ale nic…

volatile static uint16_t *play_melody[2] = melodie_1;

Nedokázal by mi někdo pomoct? Dík

:arrow_right: administrator: přesunuto z "Ostatní"

:arrow_right: administrator: přejmenováno z "Dvourozměrné pole"

Nevím co přesně chceš, ale ukazatel na první člen dvourozměrného pole je
volatile static uint16_t *play_melody = &melodie_1[0][0];

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.

se obávám, že
x = *play_melody[0][0];
ani jinak přes pointer na celé pole to nejde, pouze můžeš ukazovat pointerem na jednu položku pole. Asi vím, o co ti jde .