delete p指针
来源:互联网 发布:java 并发 面试 编辑:程序博客网 时间:2024/04/30 12:06
删除p指向的内存。
p成为“野指针”;
一般删除后应将p赋值为null。
----------------------------------------------
删除指向的资料,调用析构函数
但也有可能指向的内存内容并未改写
但这段内存已经无效,系统会回收的
而且p也成为野指针,指向的位置并未改变
但指向的位置内容可能已经不正确
所以一般来说立刻要 p = NULL;
-----------------------------------------------------
都是delete这个词给大家造成的误解,其祖宗free()可能看上去更好一点.
delete是什么也不删!!!!!!
delete只是通知OS,有一块堆上的内存它已经不要了,枪毙还是关押,一切由OS做主.
int *p=new int[100];
此时p是有地址的,设为0x00400001,其值设为0x10003000,其含义是在堆上从地址0x10003000开始起的400字节已从OS手中要过来p[0]=1234;
delete p;
通知OS,从0x10003000处起的400字节,我已不在乎它的死活,您看着办吧.
printf( "%p ",p);
此时仍可打印出0x10003000,因为变量p是你自己的局部变量.
printf( "%d ",p[0]);
我还想看最后一眼,这时OS多半还没有枪毙它,估计你还看上一眼1234,但已不能保证,也许OS在你通知后立即押赴刑场了.
....
过了数天
printf( "%d ",p[0]);
你想什么呢?那小子早已魂归西天多时了
- delete p指针
- delete p和delete[] p的区别
- delete p 和delete []p的区别
- delete p和delete[] p的区别
- delete p和delete[] p的区别
- delete p与delete p[]的区别
- delete p和delete[] p的区别
- delete p和delete[] p的区别
- 指针中的 &p, p, *p
- 指针 *p++和*++p
- 指针++*p++
- 指针P
- delete char *p
- c/c++中delete/free 指针后,设置p=NULL的好处
- c/c++中delete/free 指针后,设置p=NULL的好处
- c/c++中delete/free 指针后,设置p=NULL的好处
- 指针p,*p,&p之间的区别
- 指针p,*p,&p之间的区别
- java 空字符串与null区别
- 让ARX程序随CAD一起启动的方法
- div之float,clear特性
- #QNAN、1.#IND和1.#INF等“无效”浮点数说明及其判断
- 抽象类
- delete p指针
- strlen 与sizeof()的区别
- 虚函数与纯虚函数区别
- const char*, char const* and char *const
- 线程中CreateEvent和SetEvent及WaitForSingleObject的用法
- ubuntu12.04 wine 安装百度云管家
- ubuntu 13.04 安装 apache2.2+mod_wsgi+Django
- 打败我们的到底是什么?
- Windows Socket 编程_ 简单的服务器/客户端程序 .