我创建了一个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()
之后自己进行分配