我编写了一个简单的函数来将子列表插入到引用给出的链表中。代码对我来说是正确的,但编译器指示我没有正确使用指针。
void insertSub(string h, day d, string gr, string sub, ListAPI **tmp_api) {
auto newNode = new _ListSub;
// initialize new node of sub-list
newNode->h = h;
newNode->d = d;
newNode->gr = gr;
newNode->sub = sub;
// point new node to the previous and next node
newNode->next = node->next;
newNode->prev = node;
// point actual node to the new node
*tmp_api->head->next->prev = newNode;
*tmp_api->head->next = newNode;
cout << "New node inserted to " << *tmp_api->id << endl;
// increment size
++ node->size;
}
在某些调用函数中,我使用它:
auto tmp_api = api;
insertSub( h, (day)enumerateDay(week), gr, sub, &tmp_api );
其中api
的类型为ListAPI *
且包含节点。
g ++错误:
../src/main.cpp:107:13: error: request for member ‘head’ in ‘* tmp_api’, which is of pointer type ‘ListAPI*’ (maybe you meant to use ‘->’ ?)
*tmp_api->head->next->prev = newNode;
^~~~
../src/main.cpp:108:13: error: request for member ‘head’ in ‘* tmp_api’, which is of pointer type ‘ListAPI*’ (maybe you meant to use ‘->’ ?)
*tmp_api->head->next = newNode;
^~~~
../src/main.cpp:110:51: error: request for member ‘id’ in ‘* tmp_api’, which is of pointer type ‘ListAPI*’ (maybe you meant to use ‘->’ ?)
cout << " $ newNode inserted to " << *tmp_api->id << endl;