gpt4 book ai didi

c++ - struct c++的内存分配和释放

转载 作者:行者123 更新时间:2023-11-28 02:54:06 27 4
gpt4 key购买 nike

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[] 和 delete 吗?

最佳答案

如果您坚持手动处理内存而不是使用适当的容器类,则需要修复 new/delete。您的每个 new 调用都是数组形式 new ...[] 因此每个 delete 都应该是 delete[],但是你在循环中使用了没有 []delete

关于c++ - struct c++的内存分配和释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22406079/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com