struct SAD_tables
{
typedef int** sadTable;
sadTable sadTables[16];
int height;
int width;
SAD_tables(int _height, int _width)
{
height = _height;
width = _width;
for (int i = 0; i < 16; i++)
{
sadTables[i] = new int*[height];
for (int j = 0; j < height; j++)
{
sadTables[i][j] = new int[width];
}
}
}
~SAD_tables()
{
for (int i = 0; i < 16; i++)
{
for (int j = 0; j < height; j++)
{
delete sadTables[i][j];
}
delete[] sadTables[i];
}
}
};
我不确定我是否正确实施了删除功能。你可以解释我是否正在使用删除[]并正确删除?
答案 0 :(得分:2)
如果您坚持手动处理内存而不是使用正确的容器类,则需要修复new / delete。您拥有的每个new
来电都采用数组形式new ...[]
,因此每个delete
都应为delete[]
,但您使用delete
而不是[]
环。