Re: Tajemná zákoutí jazyka C.

tomas mainzer t.mainzer na gmail.com
Pátek Leden 8 12:45:11 CET 2016


char *f[] - f je pole ukazatelu na char
char (*f)[] - f je ukazatel na pole charu
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.




Dne 8. ledna 2016 12:17 Miroslav Mraz <mrazik na volny.cz> napsal(a):

> 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
>
> test.c:14:11: error: incompatible types when assigning to type ‘char
> *[20]’ from type ‘char (*)[20]’
>    ps->foo = & pole;     // Tohle je pro mne nečitelné
>
> 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í.
> 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.
> 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ě.
>
> Mrazík
>
>
> Dne 8.1.2016 v 11:21 Jiří Nesvačil napsal(a):
>
>> Rekl bych, ze toto se rozlozi:
>> struct strange {
>>    char (*foo) [FOOLEN]; // Proč ???
>> };
>>
>> struct strange {
>>    char *foo [FOOLEN];
>> };
>>
>> Dale pak skoro ekvivaletne
>> struct strange {
>>    char **foo;
>> };
>>
>> Ta definice delky muze souviset s definici v pameti. Pokud kompiler nevi
>> jak to je dlouhe, tak se z toho nedaji delat tabulky, ale implementuje
>> se to jako pole odkazu. Kdyz tomu dam delku, tak by to kompiler mohl
>> delat jako tabulku s jasne danym rozmerem a ne jako pole pointeru.
>>
>> Jirka
>>
>>
>> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20160108/ba4b56cf/attachment.html>


Další informace o konferenci Hw-list