ampersandy u promeenych (Was:RE: Jsem zoufaly, neidentifikovatelna chyba v programu v C)
Jaroslav Honsa
honsa na sunstel.asu.cas.cz
Čtvrtek Květen 25 11:06:36 CEST 2000
On Thu, 25 May 2000 Fronek na ZZNSLANY.CZ wrote:
> & je adresni operator, pokud je pouzit, predava se ADRESA promenne,
> pokud neni pouzit, predava se hodnota promenne. Rozdil je v tom, ze
> pokud chci ve volane funkci menit hodnotu, musim ji predat ADRESU. Jinak
> se sice hodnota zmeni, ale jen hodnota lokalni kopie (ve funkci). Funkce
> samozrejme musi "vedet" ze se ji preda adresa, protoze tak s ni i
> pracuje. No a pokud do funkce, ktera ocekava adresu predate hodnotu, tak
> to zbuchne, protoze se funkce pokusi pristoupit k pameti, ktera ji
> nepatri. Prekladac ani nepipnul??
>
To se mi libi. Ale uvedu priklad, ktery mne mate.
1. Priklad:
void funkce(char * prom);
char prom[128];
...
funkce(&prom);
- je spravne.(aspon doufam!)
2.Priklad:
void funkce1(char *prom1);
void funkce2(char prom2[])
{
...
funkce1(prom2);
...
}
- tady NESMI byt & u prom2!
Muzete mi k tomu neco napsat?
Diky.
Zdravi Jaroslav Honsa.
Další informace o konferenci Linux