c – 使用新的外部函数范围声明和初始化变量
发布时间:2020-12-16 10:23:51 所属栏目:百科 来源:网络整理
导读:我的一位同事使用new声明并初始化了一个全局变量: #define MAX_SIZE_TABLES (1024 * 1024)unsigned char * ImageBuf = new unsigned char[MAX_SIZE_TABLES]; 使用Microsoft Visual Studio 2010 Premium编译和构建时没有错误. 我的问题: 这是合法的标准还是
我的一位同事使用new声明并初始化了一个全局变量:
#define MAX_SIZE_TABLES (1024 * 1024) unsigned char * ImageBuf = new unsigned char[MAX_SIZE_TABLES]; 使用Microsoft Visual Studio 2010 Premium编译和构建时没有错误. 我的问题: 如果没有函数调用delete删除内存? 编辑1:在“为变量声明”之后添加“初始化”. 解决方法
new不声明变量.它分配内存.声明部分是这样的:
unsigned char * ImageBuf 的: = new unsigned char[MAX_SIZE_TABLES]; 部分是初始化,而不是声明. 在全局范围内就地初始化变量是合法的,包括使用new或函数调用.程序不会自动释放内存(手动分配的内存永远不会自动释放;分配发生的位置无关紧要.)当进程退出时,操作系统将释放内存(以及所有常规清理),如关闭文件等.)但当然这是特定于平台的.从程序的角度来看,内存在其生命周期中永远不会被释放. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |