原文:delete指针以后应赋值为NULL——QT deletelater指针以后也同样要马上赋值为NULL

delete p后,只是释放了指针指向的内存空间。p并不会自动被置为NULL,而且指针还在,同时还指向了之前的地址 delete NULL编译器不会报错 因为delete空指针是合法的 例: 对一个非空指针delete后,若没有赋NULL,若再次delete的话,有可能出现问题。 如下代码 int p new int delete p delete p 用VC编译运行将出现问题。 将其改为: in ...

2016-09-08 10:32 0 8613 推荐指数:

查看详情

delete指针以后赋值NULL

delete p后,只是释放了指针中存放的地址中的内存空间。但是指针变量p仍然存在(即指针p本身所占有的内存),且p中存放的地址还是原来的地址。 例如:   对一个非空指针delete后,若没有将p赋为NULL,若再次delete的话,会出现问题。   如下代 ...

Mon May 21 07:20:00 CST 2018 0 1570
指针赋值NULL;是什么意思呢?(转)

int *p=NULL;这个NULL是什么意思? 网上百度了下,有人说NULL=0;是在头文件中定义的; 首先要说的是:非堆分配的内存是不需要free的。 再说p=NULL;指针的变化是 p指向了一个地址为0的内存,这就提醒别人不要对这个指针进行解引用的操作 ...

Mon Oct 17 17:25:00 CST 2016 0 7207
给初始化为NULL的结构体指针赋值报错问题

给初始化为NULL的结构体指针赋值报错问题 https://bbs.csdn.net/topics/392560720 tmp指向null,使用tmp就会报错,因为这代表要去0的地址取数据,0地址是不允许访问的,所以会报错,换成malloc后,系统会分配可使用的地址给tmp,所以tmp就不会 ...

Sun Apr 05 06:24:00 CST 2020 0 1011
关于空指针NULL、野指针、通用指针

首先说一下什么是指针,只要明白了指针的含义,你就明白null的含义了。假设 有语句 int a=10;那么编译器就在内存中开辟1个整型单元存放变量a,我们假设这个整型单元在内存中的地址是 0x1000;那么内存0x1000单元中存放了数据10,每次我们访问a的时候,实际上都是访问的0x1000单元 ...

Fri Nov 16 15:43:00 CST 2012 0 22749
int型赋值指针

下面程序运行结果是? 注意 只有地址才能赋值指针类型,因此*int p=0是指向地址0x00; int型占用4个字节,因此加6表示指针偏移24个字节,十六进制地址就指向0x18,即为24。 C++11 ...

Wed Mar 25 19:00:00 CST 2020 0 1088
指针间的互相赋值

本篇文章分为三个大的部分 大标题1提出权限“概念”,大标题2验证赋值规则 大标题3、4、5是我的个人理解。 大标题6是最直接的结论。 提醒 看懂这篇文章可能需要你知道并理解四种指针的定义,这是基础。当然如果真的不懂,可以直接去文尾记住结论。 四种指针详解戳这https ...

Tue Jul 30 22:52:00 CST 2019 0 1039
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM