我有一个简单的链表节点如下
typedef struct node {
void *data;
struct ListElement *next;
} node;
我还有一个节点创建和删除功能,如下所示:
void createNode(void *data){
node *n = malloc(sizeof(node));
//assign data to data and initialize pointer to NULL
}
void deleteNode(List *list, Node *node){
//Take care of the next pointer
free(node);
}
当我释放节点时,我是否也必须删除结构的成员(数据和下一个指针)?因为我没有专门为成员使用 malloc,而只为整个结构使用 malloc?如果是这样,那我该怎么做?会不会把节点的所有成员都放在堆上,栈就完全不用了?