Adresace přes pointer

Martin Záruba swz na volny.cz
Čtvrtek Říjen 26 12:41:38 CEST 2023


Tak s tím teď taky bojuji a něco dělám špatně. Mám strukturu, pro 
jednoduchost takto

structtDATA {
int16_tx;
int16_ty;
}DATA;
byte buf[2];
uint16_t ADRESA;

Potřebuji do ní zapisovat tak, jako by to bylo pole, tedy jakoby x bylo 
DATA[0] a y bylo DATA[1].

Napsal jsem to takto:

int16_t*ADATA=(int16_t*)&DATA+ADRESA*2;
*ADATA=buf;
A očekával jsem, že jestliže pointer ADATA je typu int16_t, bude se to 
chovat tak, že pokud do ADRESA dám 0 zapíšou se dva byte z buf do 
proměnné x, pokud dám do ADRESA 1, zapíšou se do y.
Ale nefunguje to. Co je blbě?
Je mi jasné, že asi jednodušší je použít memcpy, ale já bych rád věděl, 
co dělám blbě.

-- 

Martin Záruba
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20231026/0160f2b8/attachment.htm>


Další informace o konferenci Hw-list