gpt4 book ai didi

c++ - 静态存储和大对象

转载 作者:行者123 更新时间:2023-11-28 06:20:13 24 4
gpt4 key购买 nike

据我所知,static 关键字做了两件事:

  1. 它在堆上而不是栈上分配变量。 存储
  2. 它标记变量的生命周期与其父进程的生命周期一样长。 范围

因此,在以下情况下使用它:

  1. 变量太大以至于会溢出堆栈。 存储使用
  2. 变量需要在函数的进程生命周期内可用。 范围使用

但是,如果变量非常大,但不需要一直可用,并且一直将其保存在堆中会占用大量内存怎么办?

遇到这种情况我该怎么办?我不确定我是否完全理解 static 关键字的用途。

最佳答案

C++ 中的 static 关键字或多或少与您描述的持久存储相关,但根据特定上下文有一些细微差别:

--全局范围内的静态变量。

--局部函数范围内的静态变量。

--静态类成员。

--静态类方法。

我建议您在一些教程中查看所有这些案例。

我认为您误解了一个概念点,即 static 本身与大小相关的存储效率无关。如果您需要处理大数据,可以使用动态分配/解除分配(new/delete)来实现。换句话说,这是一个内存管理问题,处理这个问题的各种技术与构造函数、析构函数、智能指针等有关......

关于c++ - 静态存储和大对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29434087/

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