zoukankan      html  css  js  c++  java
  • delete 删除指针

    危险的代码:

       int* p=new int(1);
       delete p;
       delete p;

    安全的代码:

       int* p=new int(1);
       delete p;
       p = NULL;

    (1)delete 一次以后,p成了野指针,它作为地址的值还是有效地没还可以访问它以前指向的内存,不过那片内存被重新格式化了;
    (2)p不等于NULL,用 if(p) 语句不能判断它指向的内存是否有效(此时它指向的内存无效,p本身有效);
    (3)delete 一次以后,不能再次delete,否则会报错;
    (4)此时如果误用p指针,仍然可以修改内存的值和从该处取出数值,但此时数据不受保护,该内存空间可能被重新被分配给别的变量;
    (5)如果p指向的空间再次被new函数分配,即使是分配给别的指针,即使分配大小与原来不一样,p又恢复了效力,可以改变内存的值,甚至可以重新被delete,p的作用与新分配的指针一样;

    转自:https://www.cnblogs.com/romanten/p/6885216.html

    线程 0x26ac 已退出,返回值为 0 (0x0)。
    线程 0x4524 已退出,返回值为 0 (0x0)。
    线程 0x22d4 已退出,返回值为 0 (0x0)。
    线程 0x3b30 已退出,返回值为 0 (0x0)。
    线程 0x3128 已退出,返回值为 0 (0x0)。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: BuildingException,位于内存位置 0x000000A88E716580 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: BuildingException,位于内存位置 0x000000A88E716580 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: BuildingException,位于内存位置 0x000000A88E716580 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: BuildingException,位于内存位置 0x000000A88E716580 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: BuildingException,位于内存位置 0x000000A88E716580 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: BuildingException,位于内存位置 0x000000A88E716580 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: BuildingException,位于内存位置 0x000000A88E716580 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: BuildingException,位于内存位置 0x000000A88E716580 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: BuildingException,位于内存位置 0x000000A88E716580 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: carve::exception,位于内存位置 0x000000A88E715800 处。
    0x00007FFFA2C5A388 处(位于 TeslaManage.exe 中)引发的异常: Microsoft C++ 异常: BuildingException,位于内存位置 0x000000A88E716580 处。
    QObject::connect: Cannot connect (null)::timeout() to VCViewerWidget::slotAnimationFrame()
    线程 0x4088 已退出,返回值为 0 (0x0)。
    “TeslaManage.exe”(Win32): 已卸载“C:WindowsSystem32Windows.StateRepositoryPS.dll”
    “TeslaManage.exe”(Win32): 已卸载“C:WindowsSystem32PortableDeviceApi.dll”
    “TeslaManage.exe”(Win32): 已卸载“C:WindowsSystem32Windows.Storage.Search.dll”
    “TeslaManage.exe”(Win32): 已卸载“C:WindowsSystem32MMDevAPI.dll”
    “TeslaManage.exe”(Win32): 已卸载“C:WindowsSystem32provsvc.dll”
    “TeslaManage.exe”(Win32): 已卸载“C:WindowsSystem32devobj.dll”
    “TeslaManage.exe”(Win32): 已卸载“C:WindowsSystem32wintrust.dll”
    “TeslaManage.exe”(Win32): 已卸载“C:WindowsSystem32setupapi.dll”
    “TeslaManage.exe”(Win32): 已卸载“C:WindowsSystem32EhStorAPI.dll”
    “TeslaManage.exe”(Win32): 已卸载“C:WindowsSystem32InputHost.dll”
    “TeslaManage.exe”(Win32): 已卸载“C:WindowsSystem32Windows.UI.dll”
    “TeslaManage.exe”(Win32): 已卸载“C:WindowsSystem32PlayToDevice.dll”
    “TeslaManage.exe”(Win32): 已卸载“C:WindowsSystem32OneCoreUAPCommonProxyStub.dll”

  • 相关阅读:
    中介者模式
    观察者模式
    javascript深入理解js闭包
    外观模式
    模板方法模式
    浅析C#深拷贝与浅拷贝
    C#浅拷贝与深拷贝区别
    6个重要的.NET概念:栈,堆,值类型,引用类型,装箱,拆箱
    原型模式
    设计模式总结
  • 原文地址:https://www.cnblogs.com/herd/p/11258256.html
Copyright © 2011-2022 走看看