[英]How to free a 2d array of structs in c99
这就是我创建2d数组的方式。
Space **create_map( int row, int col) {
Space **map = malloc(row * sizeof(Space*));
for (int i = 0; i < row; ++i)
map[i] = malloc(sizeof(Space) * col);
return map;
}
这是结构的组成部分
typedef struct Space{
char character;
int isVisited;
int row;
int column;
int stepCount;
}Space;
我将如何释放它?
您需要从分配内存时以“反向”释放内存。 因此,首先,您需要释放数组(或其他结构)的元素,然后释放指针。
void freeMap(Space map){
for (int i = 0; i < row; ++i)
free(map[i]);
free(map);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.