Sim*_*ity 6 c++ pointers delete-operator
如果我delete指针如下,例如:
delete myPointer;
Run Code Online (Sandbox Code Playgroud)
而且,在这之后也没有分配0如下指针:
myPointer = 0; //skipped this
Run Code Online (Sandbox Code Playgroud)
会myPointer指向另一个内存地址吗?
sha*_*oth 18
不,在大多数实现中,它将存储与先前相同的地址 - delete通常不会更改地址,除非您分配新的地址值,否则它将保持不变.然而,这并不总是得到保证.
不要忘记,除了为已经delete指针指定空指针或其他有效指针之外,执行任何操作都是未定义的行为 - 否则您的程序可能会崩溃或行为异常.
myPointer将指向相同的内存地址.但是,使用该地址的内存对你来说是无效的,因为delete会将它返回给运行时/操作系统,而操作系统我已分配该内存供其他人使用.