在链接列表中,我有以下代码
Node *tmp = head;
Node *del = head->next;
tmp->next = del->next;
delete del;
del = tmp->next;
在我的代码中,我首先删除了指针del
,稍后我将其指向tmp->next
。这有用吗?
答案 0 :(得分:5)
你实际上并没有删除指针变量本身,只是将它指向的内存区域标记为可以自由使用以用于将来的分配(在调用析构函数之后但是'一个不同的主题)。指针变量只携带一个地址。即使删除后指针变量也没问题,但它指向内存中已释放的区域,因此其内容未定义。
当指针变量被重新分配以指向另一个内存地址时,它将与旧的"删除"无关。记忆的一部分。