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); } 解决方法
这不是真的.通常,如果已分别使用new或new []分配内存,则只需调用delete或delete []. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容