gpt4 book ai didi

c++ - 动态声明数组背后的静态声明

转载 作者:行者123 更新时间:2023-11-30 04:24:52 24 4
gpt4 key购买 nike

我想在一个函数中有一个数组,它在我退出函数时保留它的值,例如-

 int func(int x)
{
static int arr[5];
}

但问题是我事先不知道数组的大小(即它取决于 x)。所以,我必须使用“new”声明一个数组。

这样可以吗?

 static int *arr=new int[x];

或者我将不得不做:

  static int *static arr = new int[x]

如果不是那么怎么做?

最佳答案

static int *arr = new int[x];可以。但是,您需要担心内存泄漏,因为 delete [] arr; 没有什么用处。 .

如评论中所述,本地 static std::vector<int> arr;首选,因为它的析构函数会在程序结束时自动调用。

关于c++ - 动态声明数组背后的静态声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12477893/

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