Funkce v C

Jakub Mahdal geoma na trz.cz
Čtvrtek Říjen 4 16:50:52 CEST 2001


On Thu, 4 Oct 2001, Kasparek Tomas wrote:

> On Thu, 4 Oct 2001, Igor Bujna wrote:
>
> >
> > Zdravim,
> > mam funkci "dfield_long (long *put);". Pak mam funkci
> > "dfield_short(short *put);" , ktera je identicka s predchozi func,
> > akorat je zde jina velikost pointeru.
> > Chtel jsem to vyresit takhle:
> > void dfield_short(short *put)
> > {
> > short p;
> > long pom;
> >
> > p = *put;
> >  pom = (long) p;
> >  dfield_long (&pom);
> >  p = (short) pom;
> >  *put = p;
> >  }
> > Akorat mi to vzdy pri volani funkce dfield_long vytuhne.Nevite jak tohle
> > vyresit .
> > Dik
>
> Co presne znamena vytuhne. Jsou to sice cachry s ukazatelama a to je
> vzdycky problem, ale na druhou stranu na tom nevidim nic co by tomu melo
> vadit.
>
> Na druhoustranu, uz tdy sedim dost dlouho a zacinam citit, jak se trochu
> prehrivam, tak me berte s rezervou.....
>
> Zkus poslad kod te funkce pro long, a nebo to proste zkopiruj jeste jednou
> a predelej s/long/short/g a zkus jedtli je to OK.
>
> Co ti hodi gdb?
>
> --
>
> 	Tomas Kasparek (sioux, xkaspa06)
>  	 Tomas.Kasparek na seznam.cz
> 	 Linux na dcse.fee.vutbr.cz
> 	student UIVT FEI VUT Brno
>

Nemohlo by to treba byt tim, ze jste volal funkci s neinicializovanym
pointerem? Anebo jak zpracovava fce dfield_long() pointer, tak nemeni v
jejim tele nahodou hodnotu pointeru? Pze by jste ji mel predavat vlastne
pointer, ale ona to je adresa promenne pom.

JM



Další informace o konferenci Linux