struct FS { int i; //FS(int a) { i = a; } }; FS& ret() { FS f; f.i = 100; printf("%p\n", f); return f; } int main() { //printf("%d", ret().i); FS f = ret(); printf("%p", f); }
ret()が終わったタイミングで ret()内のfはメモリから消されてしまう
と思うのですが、main関数 fのアドレスとret内fのアドレスが一致し
main内からf.iを行っても100と出力されています
これはメモリは消されているが
書き残しが残っているとおもっていればよいのでしょうか?
![guest](/img/icon/icnUserSample.jpg)
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。