如果它被删除,我可以重用一个声明的指针吗?

ret*_*n 0 1 c++ pointers

在链表中,我有以下代码

Node *tmp = head;
Node *del = head->next;
tmp->next = del->next;
delete del;
del = tmp->next;
Run Code Online (Sandbox Code Playgroud)

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

isa*_*ndi 5

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

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