因为 NULL 并不是真正意义上的空指针,只是恰好指向 0 地址的指针。从指针的角度,它依然是一个合法的...
直接赋值为NULL,如double *p; p=NULL; 如果是动态数组,如int *p,m,n;p=new int[m*n]; 最后释放的时候需要delete[]p; p=NULL;
//用完指针p之后,一定要将其删掉。这样可以杜绝野指针的存在 delete p; //删除指针p之后,一定要加上下面这句话,免得成为野指针 p=NULL; } 好了,下次一定要记住,在分配空间给指针之后,一定要用NULL来判断一下是否成功了。然后在删除这个指针的时候,也要用NULL来赋给指针,杜绝成为野指针!
free一个指针,只是将指针指向的内存空间释放掉了,并没有将指针置为NULL,指针仍指向被释放掉的内存的地址,在判断指针是否为NULL的时候,通常是通过if(pt == NULL) ,这时,导致指针成为了野指针 并且野指针和空指针不同,野指针有地址,或者说是指向内存,对野指针进行操作,会造成内存错误,并且野指针无法从if语句进行...
所以NULL还是代表未初始化的状态,新的地址才已经初始化。因此,delete语句后,指针指向未初始化的那个...
指针没有初始化或者释放内存时没有置为NULL_牛客网_牛客在手,offer不愁
C++指针delete后还要置为nullSmartuil 互联网行业 从业人员3 人赞同了该文章 C++指针delete后还要置为nullblog.csdn.net/qq_36570733/article/details/80043321发布于 2020-11-04 11:46 内容所属专栏 C++-FromZeroToHero 从零开始学习C++ 订阅专栏 C++ ...
free ()释放的是指针指向的内存。即把指针指向的那块内存交还给操作系统 而指针本身仍存在,因为指针是一个变量,只 有程序结束时才被销毁,只不过现在指针指向的内容是无用的,未定义的。因此,释放内存后通常把指针指向 NULL,防止指针在 后面不小心又被引用。供参考!
主要有三种首先,当指针所指向的内存被释放后,如果我们没有及时将指针置为NULL,那么这个指针就仍然存储着已经被释放的内存地址,是一个野指针。其次,如果我们在定义指针时没有及时进行初始化,那么这个指针就会包含一个随机的、不确定的值,它可能指向任何内存地址,从而可能引发不可预测的错误。最后,如果我们对指针的操作...
定义指针变量时,必须将指针变量初始化为NULL(为空),否则,指针变量会由于初始化位置的不确定,而成为野指针.这句话中‘由于初始位置不确定,怎么会的