我有一个函数,您将指针传递给列表(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
}

10-06 03:52