gpt4 book ai didi

c++ - 什么时候释放与静态变量相关的内存?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:40:06 37 4
gpt4 key购买 nike

<分区>

我想知道是否有人可以阐明 C++ 中的内存释放过程。

如果我有一个声明为静态的结构,那么它的构造函数是第一个执行的,而它的析构函数是最后一个执行的:

struct initializer execute_before_and_after_main {
initializer() { init(); }
~initializer() { cleanup(); }
}
static initializer execute_around_main;

然后我有类似的东西:

class my_class {
my_object objects[100];
}
extern my_class gobal_my_class;
my_class global_my_class;

main 在这里并不重要:

int main (int argc, char* argv[]) {
....
}

调用 cleanup() 时,objects 数组现在是否包含已释放/无效的内存?是否有 c++ 在这里实现的标准初始化/销毁序列,有人可能会指出我?

谢谢

编辑:我知道这种类型的代码可能不是最佳实践,但我仍然想知道是否定义了行为。

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