C++ でのメモリ処理についていくつか質問があります。
Mystruct *s = new Mystruct
との違いは何Mystruct s
ですか? メモリ内で何が起こるか?このコードを見ると:
struct MyStruct{ int i; float f; }; MyStruct *create(){ MyStruct tmp; tmp.i = 1337; tmp.j = .5f; return &tmp; } int main(){ MyStruct *s = create(); cout << s->i; return 0; }
解放されるのはMyStruct tmp
いつ?MyStruct tmp
が最後に自動的に解放されないのはなぜcreate()
ですか?
ありがとうございました!