我想在 C 中创建一个通用的链表。以下是节点的结构:
typedef struct node {
void *value;
int size; // n bytes
ind index; // index of the node
struct node *next;
} Node;
我的 delete_node 函数如下。搜索函数发送一个指向我要删除的节点的指针。
Node *search_list(Node *list, void *data, int n_bytes);
int delete_node(Node *list, Node *to_be_deleted); // returns 1 on success
在delete_node
函数内部,我想释放指向的内存void *value
,然后释放为Node
自身分配的内存。
free(to_be_deleted->value); // Would this work??
free(to_be_deleted);
由于它是void
指针,我们不知道它所指向的对象占用了多少字节。我们如何释放内存呢?对不起,如果这是一个愚蠢的问题?