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