我想創造C.繼通用鏈表是節點的結構:如何釋放C中的n個字節的內存?
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
指針,我們不知道有多少字節它指向的對象已經佔據。我們如何釋放內存? 對不起,如果這是一個愚蠢的問題?
你很少計算C中的位;字節 - 是的,經常,但是位 - 不經常。 –
@JonathanLeffler哦,是的,命名不好。我改變了它nbytes :) – zeronone