加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 如何从堆中删除变量?

发布时间:2020-12-16 10:32:49 所属栏目:百科 来源:网络整理
导读:我一直在做一些研究,但仍无法找到解决问题的方法. 据我所知,当我们在函数之外声明变量时,它们会在堆中分配,并且在执行结束之前不会释放该内存;除非我们使用删除功能专门执行此操作.我已经尝试了以下函数来释放在代码开头声明的变量,但没有一个工作(在dbgdel.
我一直在做一些研究,但仍无法找到解决问题的方法.
据我所知,当我们在函数之外声明变量时,它们会在堆中分配,并且在执行结束之前不会释放该内存;除非我们使用删除功能专门执行此操作.我已经尝试了以下函数来释放在代码开头声明的变量,但没有一个工作(在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);    
}

解决方法

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

这不是真的.通常,如果已分别使用new或new []分配内存,则只需调用delete或delete [].

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读