在下面的函数中,旨在释放分配给类型为
Maze
的指针的一些内存,其中 Maze
是我在另一个文件中定义的结构体。
我得到了编译器错误nonnull argument 'maze' compared to NULL
这只是一个警告,但我必须保留打开警告。
以下是该函数的代码:
void free_maze(Maze *maze) {
if (maze == NULL) {
return;
}
free(maze);
return;
}
据我理解,这是检查指向结构体的指针是否为NULL的正确方法。但是我在这里做错了什么吗?
free
释放它。 - Jean-François Fabrefree(NULL)
没有效果。由于仅仅代码本身并不会发出任何警告, 因此我们需要一个[mcve]。 - Jean-François Fabrefree_maze
函数并没有解决这个问题。它只是检查了maze
是否为空,并且free(NULL);
完全没有问题。 - P.P