我正在使用一个Hashtable结构,它将键映射到值,其值为(void *),以便Hashtables可以保存任何类型的值。
为了能够释放这些值,Hashtable的解构函数将一个指向释放函数的指针作为参数。在我的情况下,我知道我将释放基本类型,如char *和int *。是否可以传入指向free()函数的指针,因为这可以处理基本类型?
这样的事情:
FreeHashTable(hashtable_name, free);
答案 0 :(得分:2)
您可以(并且应该)将free
返回的每个指针传递给malloc
,无论它指向哪种类型(或结构)。小心不传递给你没有从malloc获得的free
指针。 (数组中间,局部变量等)
free
。
答案 1 :(得分:0)
您无需将指针传递给函数。
只需遍历值并调用free
即可。