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