繁体   English   中英

如何在C99中释放2D结构数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM