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)
Cell *curr = head; 不占用地址的head-它需要的价值的head.恰好这head是一个指针:
Cell *head = new Cell;
Run Code Online (Sandbox Code Playgroud)
因此,后Cell *curr = head;已执行,既curr和head指向同样的事情.
根据你的评论编辑:
那么如果我然后删除其中一个它会影响两者?他们指向内存中的相同地址,而不是两个相同值的副本是吗?
那是对的.两个指针指向内存中的单个对象.该对象只需要delete编辑一次.事实上,尝试delete两次会导致未定义的行为,并且经常会导致程序崩溃.
| 归档时间: |
|
| 查看次数: |
164 次 |
| 最近记录: |