gpt4 book ai didi

c++ - 如何从堆中删除变量?

转载 作者:太空狗 更新时间:2023-10-29 19:44:07 24 4
gpt4 key购买 nike

我一直在做一些研究,但仍然找不到解决我的问题的方法。据我所知,当我们在函数外声明变量时,它们是在堆内分配的,并且直到执行结束才释放内存;除非我们专门使用 delete 函数这样做。我尝试了以下函数来释放在代码开头声明的变量,但没有一个起作用(在 dbgdel.cpp 中出现调试错误):delete, delete []免费()。我做错了什么?

我将在下面粘贴代码的摘要版本。任何帮助表示赞赏。谢谢!

(我知道在正确的编程中通常不需要全局变量,但这不是我的代码,我只是想按原样修复它。)

#include <stdio.h>
#include <conio.h>
#include <cv.h>
#include <highgui.h>
#include <cxcore.h>
#include "Viewer.h"
....
// Arrays
float z_base [5201][5201];
....

uchar maskThreshold [5200][5200];
...


void main(){
.....
delete [] z_base;
//free (z_base);
//delete z_base;
//free (&z_base);
}

最佳答案

As far as I know, when I declare variables outside of every function they are allocated within the heap

这不是真的。一般情况下,您只需调用delete即可。或 delete[]如果你用 new 分配了内存或 new []分别。

关于c++ - 如何从堆中删除变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14438287/

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