我一直试图递归删除trie。 trie的typedef如下:
typedef struct _trie{
bool word;
struct _trie *link[27];
}
trie;
删除的递归代码如下,它在第一次调用时将trie的根作为输入
void destroy(trie **node){
if(node == NULL){
fprintf(stderr, "Could not destroy as NULL trie\n");
return;
}
for(int i = 0;i < 27;i++){
if((*node)->link[i] != NULL){
destroy(&((*node)->link[i]));
}
}
free(node);
}
每次运行它时,我都会在free()上获得一个无效指针。非常感谢您的帮助!