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:\Windows\System32\Windows.StateRepositoryPS.dll”
“TeslaManage.exe”(Win32): 已卸载“C:\Windows\System32\PortableDeviceApi.dll”
“TeslaManage.exe”(Win32): 已卸载“C:\Windows\System32\Windows.Storage.Search.dll”
“TeslaManage.exe”(Win32): 已卸载“C:\Windows\System32\MMDevAPI.dll”
“TeslaManage.exe”(Win32): 已卸载“C:\Windows\System32\provsvc.dll”
“TeslaManage.exe”(Win32): 已卸载“C:\Windows\System32\devobj.dll”
“TeslaManage.exe”(Win32): 已卸载“C:\Windows\System32\wintrust.dll”
“TeslaManage.exe”(Win32): 已卸载“C:\Windows\System32\setupapi.dll”
“TeslaManage.exe”(Win32): 已卸载“C:\Windows\System32\EhStorAPI.dll”
“TeslaManage.exe”(Win32): 已卸载“C:\Windows\System32\InputHost.dll”
“TeslaManage.exe”(Win32): 已卸载“C:\Windows\System32\Windows.UI.dll”
“TeslaManage.exe”(Win32): 已卸载“C:\Windows\System32\PlayToDevice.dll”
“TeslaManage.exe”(Win32): 已卸载“C:\Windows\System32\OneCoreUAPCommonProxyStub.dll”
delete 删除指针的更多相关文章
- 不要轻易delete void*指针,这样会隐藏比较多的错误。
#include<iostream> using namespace std; class Object{ void* data; const int size; const char i ...
- free 或delete后指针怎么样了
free()和delete()只是把指针所指向的内存释放掉,但是并没有把指针本身删除,也没有把指针置为NULL; #include<iostream> using namespace st ...
- Oracle库Delete删除千万以上普通堆表数据的方法
需求:Oracle数据库delete删除普通堆表千万条历史记录. 直接删除的影响: 1.可能由于undo表空间不足从而导致最终删除失败的问题: 2.可能导致undo表空间过度使用,影响到其他用户正常操 ...
- mysql delete删除记录数据库空间不减少问题解决方法
记得在中学时学计算机时老师就告诉我delete删除记录只是给数据库中的记录加一个删除标识了,这样数据库空间并不是减少了,当时没想这么多,昨天发现一个数据库利用delete 删除之后容量没变,后来百度了 ...
- 数据库CRUD操作:C:create创建(添加)、R:read读取、U:update:修改、D:delete删除;高级查询
1.注释语法:--,#2.后缀是.sql的文件是数据库查询文件3.保存查询4.在数据库里面 列有个名字叫字段 行有个名字叫记录5.一条数据即为表的一行 CRUD操作:create 创建(添加)re ...
- CRUD操作 create创建 read读取 update修改 delete删除
1.注释语法:--,#2.后缀是.sql的文件是数据库查询文件3.保存查询4.在数据库里面 列有个名字叫字段 行有个名字叫记录 CRUD操作:create 创建(添加)read 读取update 修改 ...
- MYSQL中delete删除多表数据
MYSQL中delete删除多表数据 DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释: 1. delete from t1 where 条件 2.delete t1 ...
- 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息--3.5 Delete删除用户]
3.5 Delete删除用户 删除也是通过ObjectID获得对象进行删除 [Authorize] public async Task<ActionResult> Delete(strin ...
- MYSQL中delete删除多表数据与删除关联数据
在mysql中删除数据方法有很多种,最常用的是使用delete来删除记录,下面我来介绍delete删除单条记 录与删除多表关联数据的一些简单实例. 1.delete from t1 where 条件 ...
随机推荐
- VGridControl 使用技巧
1. 让列的宽度自动填充 如果VGridControl的LayoutStyle属性为BandsView或SingleRecordView,那么把VGridControl的OptionsView.Aut ...
- python_面向对象——编程步骤
校园管理系统: 设计一个学校机构管理系统,有总部.分校.有学院.老师.员工,实现具体如下需求: 1.有多个课程,课程要有定价 2.有多个班级,班级跟课程有关联 3.有多个学生,学生报名班级,交这个班级 ...
- java疑问
1. new String("abc")究竟创建几个对象? 答: 一个或两个, 如果常量池中原来有"abc", 那么只创建一个对象; 如果常量池中原来没有&qu ...
- vue2 运动及相关函数
- Selenium常用API的使用java语言之8-模拟鼠标操作
通过前面例子了解到,可以使用click()来模拟鼠标的单击操作,现在的Web产品中提供了更丰富的鼠标交互方式, 例如鼠标右击.双击.悬停.甚至是鼠标拖动等功能.在WebDriver中,将这些关于鼠标操 ...
- JS闭包是什么?
闭包是js开发惯用的技巧,什么是闭包? 闭包指的是:能够访问另一个函数作用域的变量的函数. 清晰的讲:闭包就是一个函数,这个函数能够访问其他函数的作用域中的变量. function outer(){ ...
- vue 安装 ‘node-sass’ 运行报错:ERROR in Cannot find module 'node-sass'
好像是由于cnpm安装导致.执行下面的安装代码,或者使用npm 安装node-sass cnpm install node-sass@latest
- maven-pom文件的scope作用域
1.compile 编译范围,默认scope,在工程环境的classpath(编译环境)和打包(如果是WAR包,会包含在WAR包中)时候都有效. 2.provided 容器或JDK已提供范围,表示该依 ...
- 洛谷 P3374 【模板】树状数组 1 & P3368 【模板】树状数组 2 题解
一维树状数组的作用主要是单点修改,单点查询,区间修改,区间查询. 模板1是单点修改,区间查询:模板2是单点查询,区间修改. 模板1: #include<iostream> #include ...
- mongodb存储引擎WiredTiger
MongoDB3.2后默认采用WiredTiger存储引擎. 组成 WiredTiger由三部分组成: Mongos: 负责查询请求的路由和对ShardServer的管理: ConfigServe ...