释放内存:A**mat=新A*[2];
free the memory of: A** mat = new A*[2];
我定义了:
A** mat = new A*[2];
但是我怎样才能删除它呢?使用delete[] mat;
还是delete[] *mat;
?
只有当您不进行额外分配时,它才是delete[] mat;
。但是,如果您在数组中分配了数组,则还需要删除它们:
A** mat = new A*[2];
for (int i = 0 ; i != 2 ; i++) {
mat[i] = new A[5*(i+3)];
}
...
for (int i = 0 ; i != 2 ; i++) {
delete[] mat[i];
}
delete[] mat;
第一个,删除[]mat
第二个将删除数组中第一个元素所指向的内容(如果这真的是你所有的代码,那就没什么了(,这相当于删除[]mat[0]
此外,如果数组中的指针最终指向您也希望释放的已分配内存,则必须手动删除每个元素。例如:
A** mat = new A*[2];
mat[0] = new A;
mat[1] = new A[3];
那么你需要做:
delete mat[0];
delete[] mat[1];
delete[] mat;
相关文章:
- C++:从GPU内存(cudaMemcpy2D)获取BGR图像(cv::Mat)
- OPENCV MAT内存访问错误
- 在cv::Mat对象上循环时,内存位置出现cv::异常
- cv::Mat 内存即使在调用 release() 后也没有释放?
- OpenCV cv::mat发布免费内存
- 从 cv::Mat 初始化的 IplImage 的内存释放
- 对象Mat(args)之间的区别是什么——内存分配明智;Object*Mat=新Mat(args);在C++中
- opencv Mat 释放内存损坏
- 如何强制opencv映像(cv::Mat)释放内存
- 使用FileStorage API加载的cv::Mat的可用内存
- 使用 C++ 在 openCV 中将 Mat 转换为内存
- 公开简历 |Mat to gpuMat 内存位置的异常
- OpenCV cv::Mat导致std::vector潜在内存泄漏
- 将Mat压缩到Jpeg中,并将结果保存到内存中
- 分配OpenCV Mat对象会导致内存泄漏
- 释放内存:A**mat=新A*[2];
- OpenCV Mat创建产生内存泄漏
- 在OpenCV中有效地将大Mat加载到内存中
- cv: Mat内存分配和释放
- Opencv Mat内存管理