如果删除了指定的指针,我可以重用它吗?

时间:2014-05-31 18:00:09

标签: c++ pointers

在链接列表中,我有以下代码

Node *tmp = head;
Node *del = head->next;
tmp->next = del->next;
delete del;
del = tmp->next;

在我的代码中,我首先删除了指针del,稍后我将其指向tmp->next。这有用吗?

1 个答案:

答案 0 :(得分:5)

你实际上并没有删除指针变量本身,只是将它指向的内存区域标记为可以自由使用以用于将来的分配(在调用析构函数之后但是'一个不同的主题)。指针变量只携带一个地址。即使删除后指针变量也没问题,但它指向内存中已释放的区域,因此其内容未定义。

当指针变量被重新分配以指向另一个内存地址时,它将与旧的"删除"无关。记忆的一部分。