<div dir="ltr"><div>char *f[] - f je pole ukazatelu na char<br></div><div>char (*f)[] - f je ukazatel na pole charu </div><div>zjednodusene receno: zaciname cist od idenfifikatoru (f) a pokracujeme doprava (pokud nas nezastavi zavorka ktera se musi vyhodnotit jako prvni) a pak cteme cast vlevo.</div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">Dne 8. ledna 2016 12:17 Miroslav Mraz <span dir="ltr"><<a href="mailto:mrazik@volny.cz" target="_blank">mrazik@volny.cz</a>></span> napsal(a):<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Není tomu tak. Ty závorky (*foo) tam mají svůj význam (jako např. u ukazatele na funkci) i když moc nechápu jaký. V případě, že je odstraním nastane chyba<br>
<br>
test.c:14:11: error: incompatible types when assigning to type ‘char *[20]’ from type ‘char (*)[20]’<span class=""><br>
   ps->foo = & pole;     // Tohle je pro mne nečitelné<br>
<br></span>
Ale s tou délkou v paměti budete asi mít pravdu. Nicméně už mi to hraje, bylo potřeba vyházet dynamickou alokaci pro tyhle struktury, ta tam byla dost zbytečně, protože to alokuje jen na začátku a na konci se to zase uvolní.<br>
Takže MP3 přehrávač na STM32F4 jako čistě softwarová záležitost je zvládnutelný, malé demo už mám, zatím hraju jen z interní flashky s pevným formátem audio, hraje to bez lupání, přiměřeně ke kvalitě kodeku a vstupního formátu.<br>
Na webu se dá najít demo, ale není tam popsáno jak do toho dostat vlastní melodii. A zřejmě se tomu človíčkovi taky dělaly problémy s alokací paměti, protože si napsal vlastní alokátor. Tak jsem si pohrál a jsem rád, že úspěšně.<br>
<br>
Mrazík<br>
<br>
<br>
Dne 8.1.2016 v 11:21 Jiří Nesvačil napsal(a):<span class="im HOEnZb"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Rekl bych, ze toto se rozlozi:<br>
struct strange {<br>
   char (*foo) [FOOLEN]; // Proč ???<br>
};<br>
<br>
struct strange {<br>
   char *foo [FOOLEN];<br>
};<br>
<br>
Dale pak skoro ekvivaletne<br>
struct strange {<br>
   char **foo;<br>
};<br>
<br>
Ta definice delky muze souviset s definici v pameti. Pokud kompiler nevi<br>
jak to je dlouhe, tak se z toho nedaji delat tabulky, ale implementuje<br>
se to jako pole odkazu. Kdyz tomu dam delku, tak by to kompiler mohl<br>
delat jako tabulku s jasne danym rozmerem a ne jako pole pointeru.<br>
<br>
Jirka<br>
<br>
<br>
</blockquote></span><div class="HOEnZb"><div class="h5">
_______________________________________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" rel="noreferrer" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
</div></div></blockquote></div><br></div>