gpt4 book ai didi

c++ - C++中非指针数组的删除

转载 作者:行者123 更新时间:2023-12-05 01:23:20 28 4
gpt4 key购买 nike

当我有这样一个数组时:

int* test = new int[50];
for (int i = 0; i < 50; i++)
{
test[i] = dist4(rng);
}

(填充随机数用于测试)

我可以像这样释放内存:

delete[] test;

但是当我这样声明数组时:

int test[50];
for (int i = 0; i < 50; i++)
{
test[i] = dist4(rng);
}

我无法使用 delete 或 delete[] 释放内存。

在这里释放内存的正确方法是什么?

“dist4”函数只是一个随机数生成器:

random_device dev;
mt19937 rng(dev());
uniform_int_distribution<mt19937::result_type> dist4(1,4); // distribution in range [1, 4]

最佳答案

What's the proper way of freeing the memory here?

在后一种情况下,无需使用 deletedelete[] 显式释放内存。

假设 int test[50]; 在函数内部声明,它有 automatic storage durationtest 超出范围时,它将自动销毁。

关于c++ - C++中非指针数组的删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72578406/

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