首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++痛恨者札记5——临时变量的内存分配

2012-10-19 
C++愤恨者札记5——临时变量的内存分配临时变量的内存分配这里考虑对象做为函数参数与返回时,使用无名临时变

C++愤恨者札记5——临时变量的内存分配

临时变量的内存分配

这里考虑对象做为函数参数与返回值时,使用无名临时变量的情况。

临时变量内存分配


Fn2相关反汇编结果:

C++痛恨者札记5——临时变量的内存分配

结论是临时变量的内存来自于函数的调用者

修改临时变量的值

Fn1的参数并不是临时变量本身,而是由临时变量填充,在Fn1内部无法对其变量。而Fn2传入的是临时变量指针,可以在Fn2内外对其进行修改,下面是实验代码:

static int gTemp = 0;class Node{public:int data;Node(){if ( 0 == gTemp ){this->data = 0;gTemp++;}elsethis->data++;}};Node Fn2(){return Node();}void main(){Node* p = 0;__asm int 3while ( true ){p = &Fn2();p->data++;}__asm int 3}




热点排行