首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存释放问题

内存释放问题
EN

Stack Overflow用户
提问于 2011-06-11 07:53:27
回答 2查看 218关注 0票数 1

我只想确保我在程序中正确地释放了内存...

我在一个函数( build_proc_table() )中构建了一个动态分配的2D数组,并将该数组返回到调用该函数的位置( main() )。数组存储在main()中的一个变量中,我创建了一个“析构函数”来释放内存,但析构函数也是在main()中调用的,而不是数组的内存最初分配到的位置(在build_proc_table()中)...

我没有得到任何错误或任何东西(编译时或运行时),程序完全按照我不想要的方式运行,我只想确保不会导致内存泄漏。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-11 07:57:33

您手动分配的任何内存的生存期都不受其作用域的限制。只要分配到某个地方的内存稍后被释放到另一个地方,您就不会有问题。从哪里调用它并不重要。

票数 2
EN

Stack Overflow用户

发布于 2011-06-11 08:04:55

如果不知道您使用的是哪种语言,则很难详细说明。但是,只要您没有在分配和释放之间更改引用,那么在哪里释放内存并不重要。但是,如果您在分配和释放之间更改正在寻址的内存地址(而不是在更改之前释放),则会发生内存泄漏。

例如,在C++中...

代码语言:javascript
复制
int main(){
  int* j = new int[10];
  j = new int[10];
  delete j;
}

这将是一个内存泄漏,因为第一个数组没有被删除。这显然是一个简化的例子,是一维的,不使用函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6313119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档