Jsem zoufaly, neidentifikovatelna chyba v programu v C

Fronek na ZZNSLANY.CZ Fronek na ZZNSLANY.CZ
Čtvrtek Květen 25 10:58:46 CEST 2000


& 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??
Tohle jen k tomu &, o zbytku se necitim byt takovy odbornik na linux,
abych do toho kecal. Prisel jsem z M$ a Borland C++.............


Martin Froněk
ZZN Slaný a.s.
Pražská 1579, 274 49, Slaný
tel. +420-314-522986
e-mail:  fronek na zznslany.cz

> -----Původní zpráva-----
> Od:	Jaroslav Honsa [SMTP:honsa na sunstel.asu.cas.cz]
> Odesláno:	25. května 2000 9:47
> Komu:	linux na linux.cz
> Předmět:	Re: Jsem zoufaly, neidentifikovatelna chyba v programu v
> C
> 
> On Thu, 25 May 2000, Luboš Mikulec wrote:
> 
> > Hi All !
> > 
> > Nasledujici program ma za ulohu poslat pomoci UDP protokolu na
> urcity port
> > nekolik desitek byte a pockat 3 sekundy na odpoved.
> > 
> > Problem je v tom, ze staci prehodit poradi v deklaraci promennych a
> pak
> > nefunguje korektne, napr. neprobehne BIND(), nebo SENDTO(),
> > nebo v RECFROM naplni strukturu RECV nesmyslnimu udajmi. Pokud to
> zkompiluji
> > jaku dynamicku knihovnu k PHP, sice pracuje, ale v Apache
> > logu hlasi Segmentation fault. Program je defacto dle prikladu v
> LIBC, zadne
> > ukazatele, nic nealokuji, ale i tak neco prepisuje.
> 
> > 
> >     bytes = sendto(sock, message, message_len,0, (struct sockaddr*)
> & sin_server, size_server); 
> 
> 
> >          bytes = recvfrom(sock, reply, 512, 0, (struct sockaddr*)
> > &sin_recv,&size_recv);
> > 
> > 
> Dobry den, 
> 
> zkuste dat '&' k message a reply do fci sendto a recvfrom. Stydim se
> za
> to, ale ja nikdy nepochopim jak je to spravne. Nicmene mne podobna vec
> funguje s ampersandem a jinde zase bez! :-)
> 
> Zdravi Jaroslav Honsa.
> 
> 
> ----------------------------------------------------------------------
> -----
> Meta-FAQ (odhlášení, archív, FAQ a další):
> http://www.linux.cz/mailing-list



Další informace o konferenci Linux