对拥有堆中一个有效对象的地址的指针进行删除操作的结果,是将这个堆内存的状态从“使用中” 变为“可用”(此时的可用就是指可以调用内存)释放了,可以再次覆盖此处;;
    对指针内存进行删除操作后,指针本身的状态就是未定义的;   
*******可以是  大多数情况下:  依旧保存所删除的内存地址
 
我们的delete 仅仅是调用了析构函数,进行对打开对象的调用。
 
 
 
 
 
   二,我们operator delete进行释放内存;;
 
因此我们使用的内存,变为仅仅的可用,
此时防止我们的误操作,我们一般将其定义为 NULL ;
防止出现野指针,以及其他不能使用的内存地址使用的操作;;;  
  
 
   定义为 NULL 此时我们再操作(读取)此时的内存地址就会出现问题,但仅仅去赋值,赋予新的内存地址的时候,是不会存在问题的;
 
  虽然delete 仅仅也是释放掉内存,与tmp逝去联系,但是并没有干掉指针 p ,因此还是存在误使用 指针p的操作;;
 
 
 
 
     运行时错误的最多来源之一是内存泄露,如果程序分配了内存,但随后丢失了它的踪迹,导致既无法访问,又不能删除,没有被正确删除的对象,在进程终止之前将一直占据内存;;
   (通常指向一个内存块的时候,这个指针变量需要再次指向别的堆内存,那么我们需要先delete,释放原先指定的内存地址,防止出现丢失的内存);;; 。。。
 
            
 
 
 
    有些程序会长时间保持有效状态,假设这样的程序中包含一个经常要执行的例程,每次运行它时都会导致内存泄露,由于充满这些不可访问,未删除的内存块,堆会逐渐变得支离破碎,在某一刻,如果有例程需要大量的连续动态内存,就有可能拒绝这样请求,如果程序没有为处理这种事件做好准备,他就会中断
 
 
 
 
   当销毁指针成员的时候,默认析构函数不会删除所分配的内存
 

堆栈指针 ---delete 使用的更多相关文章

  1. 51单片机的堆栈指针(SP)

    堆栈指针(SP,Stack Pointer),专门用于指出堆栈顶部数据的地址. 那么51单片机的堆栈在什么地方呢?由于单片机中存放数据的区域有限,我们不能够专门分配一块地方做堆栈,所以就在内存(RAM ...

  2. Keil C51里关于堆栈指针的处理

    Keil C是非常优秀的C51编译器,可能是最好的C51编译器,提供各种优化模式,对变量的优化和地址安排做得非常好.这是用C语言写代码的好处之一,如果用汇编写,得费一大番功夫给各个变量安排内存物理地址 ...

  3. (转)UCOSII在任务切换与出入中断时堆栈指针的使用

    1 uc/os ii在M3中的堆栈结构 1.1 M3入账序列  1.2 加上手工入栈序列  2 PendSV在Cortex-M3中的应用 Systick为嵌入到内核中,优先级比一般中断优先级高.若在一 ...

  4. STM32堆栈指针疑问

    1. 下面的代码看的不是很明白,百为stm32开发板光盘\测试程序\CortexM3\Mode_Privilege\project,堆是程序员分配和使用的,栈是编译器指定的,存放函数参数,临时变量. ...

  5. 条目七《如果容器中包含了通过new操作创建的指针,切记在容器对象析构前将指针delete掉》

    如果容器中包含了通过new操作创建的指针,切记在容器对象析构前将指针delete掉 在STL中容器是智能的,可以在容器销毁时自动调用容器里对象的析构函数来销毁容器存储的对象. STL的容器虽然比较智能 ...

  6. 程序计数器(PC)、堆栈指针(SP)与函数调用过程

    PC(program counter)是CPU中用于存放下一条指令地址的寄存器,SP为堆栈指针.下面将介绍函数调用过程中CPU对PC和SP这两个寄存器的操作. 假设有如下函数Fun Fun() { … ...

  7. Cortex-M3 双堆栈指针(MSP&PSP)

    [双堆栈指针(MSP&PSP)] Cortex-M3内核中有两个堆栈指针(MSP & PSP),但任何时刻只能使用到其中一个. 复位后处于线程模式特权级,默认使用MSP. 通过SP访问 ...

  8. 【转】 BSS段 数据段 代码段 堆栈 指针 vs 引用

    原文:http://blog.csdn.net/godspirits/article/details/2953721 BSS段 数据段 代码段 堆栈 (转+) 声明:大部分来自于维基百科,自由的百科全 ...

  9. 转载:指针delete后要设置为NULL

    本文来自:http://rpy000.blog.163.com/blog/static/196109536201292615547939/ 众所周知,最开始我们用new来创建一个指针,那么等我们用完它 ...

随机推荐

  1. Python开发【第十一篇】:JavaScript

    JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理. 一.如何编写 1.J ...

  2. StringUtils

    StringUtils.hasText(字符串) 如果字符串里面的值为null, "", "   ",那么返回值为false:否则为true

  3. html 动态显示元素文本

    jquery easy ui:http://www.runoob.com/jeasyui/jeasyui-dd-shopping.html <html> <head> < ...

  4. [CentOs7]iptables防火墙安装与设置

    摘要 CentOS 7.0默认使用的是firewall作为防火墙,如果改为iptables防火墙,如何操作? 关闭firewall: systemctl stop firewalld.service ...

  5. Vno博客样式分享

    不知不觉有一年多没有更新博客了,还是几位园友因为喜欢这套博客样式发了消息,否则我都快忘记自己还有一个博客了,哈哈. 言归正传,这套博客样式是当时闲来无事copy的iOS界喵神的博客Vno,确实很漂亮, ...

  6. linux 驱动 工作队列

    http://blog.sina.com.cn/s/blog_78d30f6b0102uyaf.html http://blog.csdn.net/lyc_stronger/article/detai ...

  7. Redis学习笔记九:独立功能之慢查询日志

    Redis 的慢查询日志用于记录执行时间超过给定时长的命令请求,用户可以通过这个功能产生的日志来监视和优化查询速度. 服务器配置有两个相关选项: slowlog-log-slower-than 选项指 ...

  8. activiti查看流程图,有中文乱码

    第一种 因为服务器缺少必要的字体到这的问题: 解决办法 <!-- 发布流程生成图片是正常显示中文 -->            <property name="activi ...

  9. oracle with as 用法

    http://blog.itpub.net/28371090/viewspace-1190141/

  10. 网页中的CSS换行控制

    在进行DivCSS布局时,需要对文本进行控制,向大家介绍一下,CSS中控制换行的四种属性.一.white-space 可以实现HTML中PRE标签的效果,以及单元格的noWrap效果.语法: whit ...