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