没有' new'创建的对象的生命周期分配给指针

时间:2017-09-22 15:11:50

标签: c++ object object-lifetime

让我们说:

 @ViewChild('model_number') model_number.DOMelement:ElementRef;

我理解在没有struct A { int data; }; int main( void ) { { A a; a.data = 4; } cout << "Hello World" << endl; return 0; } 的情况下创建的对象存储在堆栈中,并在退出定义它的作用域时自动销毁。因此,当它执行第13行时,对象new不应该存在。

第二种情况:

a

问题是如果我将范围内struct A { int data; }; int main( void ) { A * b; { A a; a.data = 4; b = &a; } cout << b->data << endl; return 0; } 的地址分配给指针,那么对象何时会被销毁?因为我可以在范围之外打印该对象的数据值,这意味着该对象必须仍然存在。

1 个答案:

答案 0 :(得分:3)

不,这意味着您遇到了未定义的行为,因此您可以推断的任何结论都无关紧要。

关闭范围,期间后,b中存储的地址不会指向任何有效数据。