我一直在做一些研究,但仍然找不到解决我的问题的方法。据我所知,当我们在函数之外声明变量时,它们是在堆内分配的,并且直到执行结束才释放内存;除非我们专门使用该delete
功能这样做。我尝试了以下函数来释放在代码开头声明的变量,但它们都不起作用(在 dbgdel.cpp 中出现调试错误):delete
, delete []
, free()
. 我究竟做错了什么?
我将粘贴在代码的摘要版本下面。任何帮助表示赞赏。谢谢!
(我知道在正确的编程中通常不需要全局变量,但这不是我的一段代码,我只是想按原样修复它。)
#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);
}