我有一个函数,您将指针传递给列表(MList)
int ml_add(MList **ml, MEntry *me){
//I need to create new MList here
//and have *ml point to my new list
}
在ml_add函数中,我需要创建一个新的MList,并使函数参数'MList ** ml'指向我的新列表,并丢弃ml指向的旧列表。除了此功能之外,还有一个单独的功能,该功能具有Mlist,并使用此ml_add函数向其中添加内容。在ml_add内,我需要创建一个新列表,并在此后调用ml_add时让调用函数传递到新列表中。这可能吗?
我不确定是否
*ml = newList;
正在工作中
最佳答案
是的,有可能。尝试这样的事情:
int ml_add(MList **ml, MEntry *me){
//I need to create new MList here
//and have *ml point to my new list
MList * newList = malloc(sizeof(MList));
// TODO: check malloc return value,
// add references between newList and me as well as between newList and ml.
*ml = newList;
// return a meaningful value
}