C++:链接列表和指针乐趣

Tom*_*eit 2 c++ pointers linked-list

关于指针的使用有一点我在这里不明白Cell *curr = head;它的地址head和它有什么作用?

Cell *ConvertToListIter(Vector<int>& vector)
{
    Cell *head = new Cell;
    head->next = NULL;
    head->value = vector[0];
    Cell *curr = head;

    for (int i = 1; i < vector.size(); i++) {
        Cell *newCell = new Cell;
        newCell->next = NULL;
        newCell->value = vector[i];
        curr->next = newCell;
        newCell = curr;
    }

    return head;
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*ing 5

Cell *curr = head; 不占用地址head-它需要的价值head.恰好这head是一个指针:

Cell *head = new Cell;
Run Code Online (Sandbox Code Playgroud)

因此,后Cell *curr = head;已执行,既currhead指向同样的事情.

根据你的评论编辑:

那么如果我然后删除其中一个它会影响两者?他们指向内存中的相同地址,而不是两个相同值的副本是吗?

那是对的.两个指针指向内存中的单个对象.该对象只需要delete编辑一次.事实上,尝试delete两次会导致未定义的行为,并且经常会导致程序崩溃.