int a=3; int f(int b){ int c; c=b; return c; } int main(int d, void* some){ int *e=malloc(1); *e=f(3+a); return *e; } Данные Куча +------------+ +-------------+ |a[3] [3]| | | +- - - - - - + | [ ] | | mov 3 | | | |a[ ]<----- | | | +------------+ +-------------+ Код Стек +------------+ +-------------+ |R-X | |d[ ]some[ ] | | | |e[ ]b[ ]c [ ]| | | |[][] | |3 | | | +------------+ +-------------+ int a=3; int f(int b){ static int c; auto int g; c=b; return c; } int main(int d, void* some){ registry int *e=malloc(1); *e=f(3+a); return *e; } Данные Куча +------------+ +-------------+ |a[3] [3]| | | +- - - - - - + | [ ] | | c[ ]| | | | mov 3 | | | |a[ ]<----- | | | +------------+ +-------------+ Код Стек +------------+ +-------------+ |R-X | |d[ ]some[ ] | | | |e[ ]b[ ]c [ ]| | | |[][] | |3 | | | +------------+ +-------------+ volatile static int a=3; a=4; |a=4;| if (a==4)| | { | | ... | ...| ... } | | int a,b; a=b; 1R -- 2R+S char* a, *b; a=b; *a=*b; struct some a,b; a=b; struct some *a,*b; a=b; *a=*b; struct some{ char a; char b; int c; short d; }