Pole v C
Pavel Troller
patrol@sinus.cz
Středa Listopad 26 14:18:17 CET 2008
> Zdravím,
>
> > 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];
> >
Zdravím podruhé,
a ještě jeden postřeh: V programu se přiřazuje e_arr_len=5;
Pak v případě cyklu poslední průběh udělá
(*m).e[4] = (*m).e[5], kde tedy pravá strana je jednoznačně
off-by-one přeteklá...
Nebo ne ?
S pozdravem Pavel Troller
Další informace o konferenci Hw-list