码迷,mamicode.com
首页 > 其他好文 > 详细

free 或delete后指针怎么样了

时间:2014-07-09 17:14:59      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   2014   

free()和delete()只是把指针所指向的内存释放掉,但是并没有把指针本身删除,也没有把指针置为NULL;

#include<iostream>
using namespace std;

int main(void)
{
    char *p=(char *)malloc(100*sizeof(int));
    strcpy(p,"Hello World");
    cout<<"释放前指针p的地址:"<<&p<<endl;
    free(p);
    cout<<"释放后指针p的地址:"<<&p<<endl;

    if(p!=NULL)
    cout<<p<<endl;

    getchar();
}

运行结果:

bubuko.com,布布扣

从运行结果可以看出,指针p仍然存在,而且地址也没有变,只是指向了一大坨乱七八糟的东西。

free(p)之前:

bubuko.com,布布扣

free(p)之后:

bubuko.com,布布扣

因此:不等于NULL的指针不一定是有效的指针,指针初始化的时候不要忘记置为NULL,或者指向有效的地址,指针删除后也最好置为NULL

char *p=NULL;
char *str=new char[100];

free(str);
str=NULL;

 

 

free 或delete后指针怎么样了,布布扣,bubuko.com

free 或delete后指针怎么样了

标签:style   blog   http   color   os   2014   

原文地址:http://www.cnblogs.com/qianwen/p/3831861.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!