gpt4 book ai didi

c++ - 在没有将 'new' 分配给指针的情况下创建的对象的生命周期

转载 作者:行者123 更新时间:2023-11-27 23:51:08 25 4
gpt4 key购买 nike

<分区>

假设我们有:

struct A
{
int data;
};

int main( void )
{
{
A a;
a.data = 4;
}

cout << "Hello World" << endl;
return 0;
}

我知道在没有 new 的情况下创建的对象存储在堆栈中,并在退出定义它的范围时自动销毁。所以当它开始执行第 13 行时,对象 a 不应该存在。

第二种情况:

struct A
{
int data;
};

int main( void )
{
A * b;
{
A a;
a.data = 4;
b = &a;
}

cout << b->data << endl;
return 0;
}

问题是,如果我将作用域内的a地址赋值给一个指针,对象什么时候销毁?由于我可以在范围之外打印该对象的数据值,这意味着该对象必须仍然存在。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com