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