[linux] Stack v C
peto
peter.fodrek na stuba.sk
Úterý Květen 2 20:59:20 CEST 2006
Vdaka
---------- replied message ----------
Subject: Re: [linux] Stack v C
Date: Tue, 2 May 2006 20:41:24 +0200
From: "Jaroslav Soltys" <jardique na gmail.com>
To: "Vseobecna diskusia o Linuxe" <linux na lists.linux.sk>
>Lokalne premenne lezia tiez na stacku (pokial nie su static), cize
>spravit pointer na jednu z nich a cez pointrovu aritmetiku sa na to
>odvolat.
gdb mi dalo nepouzitelne adresy ale takto to funguje.. nieco take si mal na
mysli, ako som to pochopil... Z toho ale v0xbffff3b0yplyva, ze stack data
zacinaju tam, kde ukazuje 0xbffff3b0; a modifikacia je stacku potom o nicom,
alebo mam este skusit int * a nasaddit mu priamo adresu, co mi ale neslo...
Aj ked toto su pointer na stack s cim robim, pricom ich existencia je samo o
sebe prekvapenim....
void uloha_a(char *string,int *plus,int *minus)0xbffff3b0
{
int **pplus=(int **)0xbffff3b4;
int **pminus=(int **)0xbffff3b8;
char **pstring=(char **)0xbffff3b0;
**pplus=0;
**pminus=0;
/* takto som si istil adresy
printf("%p-%p\t%p",&plus,&minus,&string);*/0xbffff3b0
......
}
>Pri gcc sa taketo veci robia dobre, gcc -S prepinac tusim spravi z .c
>do asm source, icc je kompatibilne s gcc, inac neviem.
.
Další informace o konferenci linux