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 条件 ...
随机推荐
- P2P system: GNUTELLA
P2P system: GNUTELLA GNUTELLA是第一个经论证的分布式的peer-to-peer system. Napster的一个重大问题是涉及到间接侵权,所以GNUTELLA消除the ...
- c语言之——整型的隐式转换与溢出检测
溢出检测 我们可以通过下面的方式来检测溢出: if(a > INT_MAX - b) { printf("overflow\n"); } 我们利用整型的最大值减去其中 ...
- 2019-2020-1 20199312《Linux内核原理与分析》第一周作业
实验一:linux系统简介 Linux 本身只是操作系统的内核.内核是使其它程序能够运行的基础.它实现了多任务和硬件管理,用户或者系统管理员交互运行的所有程序实际上都运行在内核之上.其中有些程序是必需 ...
- python导包问题,这一篇就够了
解决办法: 将项目所在的根目录添加到sys.path中 在入口文件中加入如下代码: import sys import os # 将 项目的根目录添加到sys.path中 BASE_DIR = os. ...
- Mina整体体系结构分析
mina在应用程序中处于什么样的地位? mina屏蔽了一些网络通信细节对socket进行封装,并且基于NIO非阻塞框架,可以帮助我们快速开发网络通信,常常用于用户游戏开发,中间件等服务端应用程序.
- [TJOI2013]松鼠聚会 曼哈顿距离
[TJOI2013]松鼠聚会 luogu P3964 首先容易得到两点间距离是\(max(|x_1-x_2|, |y_1-y_2|)\)(即切比雪夫距离) 然后有个套路:原\((x,y)\)求曼哈顿距 ...
- 分治FFT学习笔记
用途 在\(O(n\log^2 n)\)的时间内做诸如 \[ f_n=\sum_{i=0}^{n-1} f_ig_{n-i} \] 或是 \[ f_n=\sum_{i=0}^{n-1} f_if_{n ...
- 1825:【01NOIP提高组】数的划分
#include<bits/stdc++.h> using namespace std; ],tot; void dfs(int num,int pos) { if(pos==k) ]) ...
- Python数据结构学习
列表 Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能. 以下是 Python 中列表的方法: 方法 描述 list.append(x ...
- WPF中打开网页的两种方法
1.浏览器打开 Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = "http://www. ...