gpt4 book ai didi

c++ - 当一个函数返回一个指针时,是否暗示我负责指针的内存管理?

转载 作者:搜寻专家 更新时间:2023-10-31 01:07:12 25 4
gpt4 key购买 nike

this question OP 探索了一个函数的想法,该函数返回对动态创建的对象的引用。

intArray& createArray()
{
intArray *arr = new intArray(10000, 0);
return(*arr);
}

答案是,即使这样可以编译,也会让使用该函数的程序员感到困惑。他会感到困惑,因为预计当函数返回引用时,该引用的“用户”不负责其内存管理。

我注意到有很多返回指针的 API 方法。这是否意味着我负责在不再需要它们时清除(删除对象并将指针设置为 NULL)?

最佳答案

Does that imply that I'm responsible for clearing [...] them once they aren't needed any more?

经常,但不总是。可以肯定的是,您需要查看您正在使用的特定 API 的文档。

在您自己的 API 中,您应该优先使用 smart pointers通过原始指针。这使得意图清晰并简化了许多内存管理问题。

关于c++ - 当一个函数返回一个指针时,是否暗示我负责指针的内存管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19655162/

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