我有一个创建的列表:
struct list_t {
int value;
struct list_t* next;
};
我的“addFirst”:
void addFirst(struct list_t* head,int value) {
struct list_t* toAdd = (struct list_t*) malloc (sizeof (struct list_t));
toAdd->value = value;
toAdd->next = head;
head = toAdd;
}
问题是,当我向列表中添加新的“节点”时,在函数中它能够正常工作(使用DDD调试器进行查看),但当我退出函数后,我的列表仍然保持不变。
我知道可以通过使我的方法返回一个
struct list_t*
而不是void
来完成此操作,并且也可以通过将指向头部指针的指针(struct list_t** PtoHead
)作为参数传递来完成此操作,但我的问题是是否可能使用我的方法来实现这一点(即返回void
并具有指向head
的指针作为参数)。
struct list_t **head
方法 :) PS:当命名您的结构时要小心,list_t 更像是 typedef 名称而不是结构名称... - Julien Fouilhé