new类型
// 一维数组
int *data = int new[len];
// 释放内存
delete []data;
data = nullptr;
// 二维数组
int **data = int new[row];
for(int i=0; i<row; i++)
{
data[i] = new int[col];
}
// 释放内存
for(int i=0; i<row; i++)
{
delete []data[i];
data[i] = nullptr;
}
delete []data;
data = nullptr;
malloc类型
// 一维数组
int *data = (int*) malloc[sizeof(int*) * len];
// 释放内存
free(data);
data = nullptr;
// 二维数组
int **data = (int**) malloc[sizeof(int*) * row];
for(int i=0; i<row; i++)
{
data[i] = (int*) malloc[sizeof(int*) * col];
}
// 释放内存
for(int i=0; i<row; i++)
{
free(data[i]);
data[i] = nullptr;
}
free(data);
data = nullptr;
vector类型
vector<int> data;
// 释放内存
if(!data.empty())
{
data.clear();
vector<int> tmp;
data.swap(tmp); // 进行交换
}
注:加大括号目的是执行完,程序自动析构。如果是指针类型也需要一个一个释放。
Mat类型
Mat Img = Mat::zeros(rows, cols, CV_32FC1);
Img.release();