Pole v C
Zdeněk Materna
zdenek.materna@gmail.com
Středa Listopad 26 14:03:22 CET 2008
ZdravĂm,
mĂĄm takovĂ˝ problĂŠm v C.
Ve struktuĹe mĂĄm deklarovanĂŠ pole e (zatĂm) pevnĂŠ velikosti. MĂĄm ukazatel na
strukturu, ten pĹedĂĄvĂĄm jako parametr funkci, a chci do pole uklĂĄdat
hodnoty, ze kterĂ˝ch budu poÄĂtat klouzavĂ˝ prĹŻmÄr. V e_arr_len je uloĹženĂĄ
dĂŠlka pole.
Takto je deklarovanĂŠ pole (ve struktuĹe):
volatile int16_t e[5];
Toto nefunguje:
for(uint8_t i=0; i<((*m).e_arr_len-1);i++)
(*m).e[i] = (*m).e[i+1];
A toto ano:
(*m).e[0] = (*m).e[1];
(*m).e[1] = (*m).e[2];
(*m).e[2] = (*m).e[3];
(*m).e[4] = ((*m).req_speed - (*m).act_speed);
SamozĹejmÄ bych radĹĄi pouĹžĂval for, protoĹže je to ÄistĹĄĂ a navĂc chci to
pole alokovat dynamicky. Ale aĹĽ na to koukĂĄm, jak na to koukĂĄm, chybu
nevidĂm. KompilĂĄtorem to projde, ale bohuĹžel to nefunguje.
CelĂ˝ program je kdyĹžtak tady:
http://robotic-hardware-interface.googlecode.com/svn/trunk/elektronika/motor_control/motor_control.c.
KompilĂĄtor pouĹžĂvĂĄm gcc.
DĂky za pĹĂpadnou radu.
------------- další část ---------------
HTML pĹĂloha byla odstranÄna...
URL: http://list.hw.cz/pipermail/hw-list/attachments/20081126/a6835b5b/attachment-0002.htm
Další informace o konferenci Hw-list