结构C 的内存分配和交易
memory allocation and deallocation of struct c++
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];
}
}
};
我不确定是否正确实现了删除函数。您能解释一下我是否正在使用delete []并正确删除?
如果您坚持手动处理内存而不是使用适当的容器类,则需要修复新/删除。您拥有的每个new
呼叫都在数组表格new ...[]
中,因此每个delete
应为delete[]
,但是您在循环中使用没有[]
的delete
。
相关文章:
- 将数组的地址分配给变量并删除
- vector.resize()中的分配错误
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- Win32编译器选项和内存分配
- 函数中堆分配的效果与缺少堆分配的情况
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 获取字符串的长度并将其分配给数组
- 将地址分配给本地指针后,公共对象的变量将消失
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 有没有一种方法可以使用placement new将堆叠对象分配给分配的内存
- 我在二维向量中是否正确分配了内存
- 正在尝试重载二进制搜索树分配运算符
- GlobalAlloc而不是其他分配方法
- 自定义先决条件对移动分配运算符有效吗
- 我可以重新分配/覆盖std::字符串吗
- 在c++中使用动态分配的问题
- 当一个新对象被分配到它的地址时,对象是否必须被销毁
- 结构C 的内存分配和交易
- 如何通过分配和交易失配解决此错误