使用delete删除指针
2016-12-12 13:48
197 查看
原文:http://blog.sina.com.cn/s/blog_6405313801013jvg.html
用delete命令处理某个指针,说是把那个指针删除了是不正确的。
delete命令指示释放了那个指针原本所指的那部分内存而已。被delete后的指针p的值(地址值)并非就是NULL,而是随机值。
也就是被delete后,如果不再加上一句p=NULL,p就成了“野指针”,在内存里乱指一通。
如果在定义p的那个函数在delete了p后,没再调用p,就没什么问题,在这个函数结束后,p就会跟其它变量一样被消除。但若在那个函数里delete了p后,又没再给p赋值(地址值),再次调用p就危险了,因为这时p在内存里乱指,有可能指到一些重要地址,随时可能系统崩溃。
用delete命令处理某个指针,说是把那个指针删除了是不正确的。
delete命令指示释放了那个指针原本所指的那部分内存而已。被delete后的指针p的值(地址值)并非就是NULL,而是随机值。
也就是被delete后,如果不再加上一句p=NULL,p就成了“野指针”,在内存里乱指一通。
如果在定义p的那个函数在delete了p后,没再调用p,就没什么问题,在这个函数结束后,p就会跟其它变量一样被消除。但若在那个函数里delete了p后,又没再给p赋值(地址值),再次调用p就危险了,因为这时p在内存里乱指,有可能指到一些重要地址,随时可能系统崩溃。
相关文章推荐
- C++ 使用delete删除指针(2
- C/C++ 使用delete删除指针需小心 “野指针”
- C++ 使用delete删除指针
- C++ 使用delete删除指针(1
- C++ 使用delete删除指针
- C++ 使用delete删除指针后应该做的工作
- 使用DEL_PTR代替delete来删除指针
- LINQ之使用Attach更新和删除(Update and Delete with Attach)
- BASIS--使用DELETE_USER_ON_DB批量删除用户
- 8章3节分配删除指针new和delete
- BASIS--使用DELETE_USER_ON_DB批量删除用户
- oracle数据库删除数据Delete语句和Truncate语句的使用比较
- BASIS--使用DELETE_USER_ON_DB批量删除用户
- 对空指针使用delete是安全的
- MySQL删除数据Delete与Truncate语句使用比较
- oracle数据库删除数据Delete语句和Truncate语句的使用比较
- 关于oracle使用delete删除的问题
- 使用DELETE与TRUNCATE删除表所有行的区别
- C++自定义类的析构函数,生成指针对象:用delete删除时,产生错误:"fatal error LNK1120: 1 个无法解析的外部命令"
- BASIS--使用DELETE_USER_ON_DB批量删除用户