递归会泄漏内存吗?
can recursion be leaking memory?
我正在做一个非常需要内存管理的项目。问题是,当我调用递归函数时,我在任务管理器中看到内存被占用,递归函数结束后,内存没有被释放。如果你仔细观察,唯一影响内存的是int q,它必须在函数结束后返回给系统,并且调用函数不能占用任何内存。
注意:bin只是一个图像和a是一个二维数组,是全局的,所以没有太多的内存使用从他们!
void inline helpbig(int y , int x)
{
int q;
q = (int) CV_IMAGE_ELEM(bin,uchar,y,x);
if (q==0)
a[y][x]=-1;
if (q==255 && a[y][x]!=1 && a[y][x]!=2)
{
max1+=1;
a[y][x] = 1;
if (y!=0)
{
if (a[y-1][x]==0)
helpbig(y-1,x);
}
if (y!=bin->height-1)
{
if (a[y+1][x]==0)
helpbig(y+1,x);
}
if (x!=bin->width-1)
{
if (a[y][x+1]==0)
helpbig(y,x+1);
}
if (x!=0)
{
if (a[y][x-1]==0)
helpbig(y,x-1);
}
}
}
注:递归函数用于寻找一些在一起的点。
当您的程序尝试分配内存时,它会从其空闲内存池中获取内存。当内存不足时,它将向操作系统请求更多内存。然而,当您在程序中释放内存时,它将返回到程序的空闲内存池,但是(通常)在程序退出之前不会返回到操作系统。
相关文章:
- 从构造函数抛出异常时如何克服内存泄漏
- malloc() 可能出现内存泄漏
- 这个极客对极客的trie实现是否存在内存泄漏问题
- 尽管遵循了规则,内存泄漏在哪里
- 为什么调用堆栈数组会导致内存泄漏
- 在简单示例中,Python3 + ctypes 回调会导致内存泄漏
- 使用模板类的自定义列表类型中的内存泄漏
- 为什么以下C++代码中存在内存泄漏?
- OpenCV 我应该使用智能指针来防止内存泄漏吗?
- 我是否生成线程并导致内存泄漏?
- 多线程程序中出现意外的内存泄漏
- 为什么此函数会导致内存泄漏?
- 在 C++ 库中使用cythonized python时内存泄漏
- 需要帮助查找内存泄漏
- 瓦尔格林德的内存泄漏使用新的
- 无法找出我的代码中的内存泄漏
- C++ 结构内部的unordered_map会导致内存泄漏问题吗?
- 可视化 使用 VS Code 查找C++应用程序中的内存泄漏
- Shared_ptr双链接列表内存泄漏
- C++ 在类中使用常量引用文本时 O2 内存泄漏