forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
Technology Stronghold by Rudolf Vesely
How to build Microsoft System Center hosted cloud series
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
Dvourozměrné pole nelze uložit do pointeru

 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> AVR
 
hazardrok
Profesionál
Profesionál


Založen: 16.1.2012
Příspěvky: 131

PříspěvekZaslal: 19 červen 2014, 16:30    Předmět: Dvourozměrné pole nelze uložit do pointeru Citovat

Ahoj mám dvourozměrné pole:
kód:

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...
kód:

volatile static uint16_t *play_melody[2] = melodie_1;


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

Arrow administrator: přesunuto z "Ostatní"

Arrow administrator: přejmenováno z "Dvourozměrné pole"
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
colombo
Profesionál
Profesionál


Založen: 11.4.2008
Příspěvky: 50

PříspěvekZaslal: 19 červen 2014, 23:55    Předmět: Citovat

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];
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
hazardrok
Profesionál
Profesionál


Založen: 16.1.2012
Příspěvky: 131

PříspěvekZaslal: 20 červen 2014, 8:52    Předmět: Citovat

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

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


Takhle mi to jde:
kód:

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
colombo
Profesionál
Profesionál


Založen: 11.4.2008
Příspěvky: 50

PříspěvekZaslal: 20 červen 2014, 13:37    Předmět: Citovat

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 .
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> AVR Časy uváděny v GMT + 2 hodiny
 
Strana 1 z 1
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2017 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)