Zdravím,<br><br>mám takový problém v C.<br><br>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.<br>
<br>Takto je deklarované pole (ve struktuře):<br><pre style="margin-left: 40px;">volatile int16_t e[5];<br></pre>Toto nefunguje:<br><pre style="margin-left: 40px;">for(uint8_t i=0; i<((*m).e_arr_len-1);i++)<br> (*m).e[i] = (*m).e[i+1];</pre>
A toto ano:<br><pre style="margin-left: 40px;">(*m).e[0] = (*m).e[1];<br>(*m).e[1] = (*m).e[2];<br>(*m).e[2] = (*m).e[3];<br>(*m).e[4] = ((*m).req_speed - (*m).act_speed);</pre><br>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.<br>
<br>Celý program je kdyžtak tady: <a href="http://robotic-hardware-interface.googlecode.com/svn/trunk/elektronika/motor_control/motor_control.c">http://robotic-hardware-interface.googlecode.com/svn/trunk/elektronika/motor_control/motor_control.c</a>. Kompilátor používám gcc.<br>
<br>Díky za případnou radu.<br><pre class="prettyprint lang-c"><span class="pun"><br><br></span><span class="pln"></span></pre><br>