如何销毁哈希映射C



我创建了一个Hashmap,其中有很多键。我的问题是:如何销毁我的哈希图?如果我在哈希映射中写入free,它会变成NULL还是其他什么?我以为free函数就足够了,但当我尝试调用我的函数时:

int isEmpty(struct hashmap *t){  
if(t!=NULL) {
int sizeT = t->size;
for (int j = 0; j < sizeT; j++) {
if (t->list[j] != NULL)
return FALSE;    // FALSE, if it is full
}
return TRUE;   // TRUE, if it is empty
}else{ 
printf("Empty!");
return 2;
}
}

在这个函数之前,我运行free,所以在isEmpty中,它可以进入else语句,而不是进入条件为(t!=NULL(的if。我怎么能肯定地摧毁它?

假设您使用malloc()realloc()分配了哈希图

free()不一定会将NULL分配给t,所以您应该在free()之后自己进行分配

最新更新