ampersandy u promeenych (Was:RE: Jsem zoufaly, neidentifikovatelna chyba v programu v C)

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Čtvrtek Květen 25 11:51:40 CEST 2000


On Thu, 25 May 2000, Jaroslav Honsa wrote:

> 2.Priklad:
> void funkce1(char *prom1);
> 
> void funkce2(char prom2[])
> {
>   ...
>   funkce1(prom2);
>   ...
> }
> - tady NESMI byt & u prom2!

Tady je to hodne zakerne. Kdyz do parametru napisete char prom2[], je to
vicemene ekvivalentni tomu, kdyz tam date char *prom2 a take se to tak
implementuje. Z vyrazu &prom2 se pak stane adresa toho ukazatele (typu
char **), nikoli adresa prislusneho pole.

Prekladac by vlastne asi nemel vyraz &prom2 vubec prelozit, protoze prom2
neni l-hodnota.

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."




Další informace o konferenci Linux