【发布时间】:2016-08-10 22:37:50
【问题描述】:
我有一个问题,在我的设置中我有这样的变量:
bool** array_2d_bool;
char** array_2d_char;
...
所以,为了释放内存,我有以下几点:
void free_bool(bool** mat, int m)
{
int i;
for (i = 0; i < m; i++)
{
free(mat[i]);
}
free(mat);
}
但是,我必须为要释放的每种类型的 2D 或 3D 数组编写一个函数。有没有办法写出这样的函数?:
void deallocate_2d(void**, int m)
这样我就可以只使用一个函数来释放任何二维数组...
【问题讨论】:
-
它会抛出编译器错误,例如“预期为 void**,已传递 char**”
-
您没有 2D 或 3D 数组,并注意到可以作为一个数组使用。
标签: c pointers memory-management dynamic