关于“为什么delete以后指针还能被赋值”一种描述
首先,系统知道哪一部分堆的线性空间被占掉了,new就是起这个作用,仅仅是声明一下(可能多了一个功能),因为堆的空间不一定是直接从系统调用获得的,堆的空间是这样管理的:程序先伸请一个大的堆空间,这个时候是通过系统调用获得空间,以后的每一次new都是从这个已获得的空间里面再进行零售分配,与系统调用无关,只有当这个大的堆空间不足时,才会再次调用系统调用申请更多空间(new触发).所以,即使一个指针被delete掉,指针的值如果不变,他所指向的空间仍然在那一个大块空间里,仍然是属于进程的线性地址空间,估计,这个空间的权限是可读可写可执行的,所以,delete掉以后,仍然可以对它赋值,读。
程序装载到线性地址空间是按分页进行的,好进行虚拟地址与物理地址的映射,而每个页都有一个权限,比如:代码段就是只读的,而堆对应的页的权限,是可读可写可执行。
转载:http://blog.chinaunix.net/uid-22174570-id-1786893.html
关于“为什么delete以后指针还能被赋值”一种描述相关推荐
- 在析构函数中delete this指针问题
思考:在析构函数中delete this指针,运行下面代码会产生什么样的结果呢? #include <iostream> using namespace std; class A{ pub ...
- C语言中指针的初始化和赋值
1.指针的初始化 指针初始化时,"="的右操作数必须为内存中数据的地址,不可以是变量,也不可以直接用整型地址值(但是int*p=0;除外,该语句表示指针为空).此时,*p只是表示定 ...
- 【二级指针--定义、初始化赋值、解引用;特殊指针--空指针、void类型的指针】(学习笔记12--指针下)
目录 一.二级指针 指针的指针 二级指针的定义 二级指针的初始化与赋值 二级指针的解引用 二级指针与指针数组 main函数的参数 二.特殊指针 空指针 void类型的指针 新星计划第六篇博文,下面是上 ...
- C语言指针的初始化和赋值
1.指针的初始化 指针初始化时,"="的右操作数必须为内存中数据的地址,不可以是变量,也不可以直接用整型地址值(但是int*p=0;除外,该语句表示指针为空).此时,*p只是表示定 ...
- c语言中,关于指针变量前的*有两种表现形式:
c语言中,关于指针变量前的*有两种表现形式: 变量定义时 如:char *pc; int *pi; 这里的*是跟随变量类型(char, int...)的,表示指针变量类型,是个标识符 变量引 ...
- C/C++中的指针变量可以相互赋值,使得它们指向同一块地址空间
两个指针变量可以相互赋值吗? int *p, *q; p=q; 这样写是什么意思?是p指向q吗? 答:1.两个指针变量之间可以相互赋值,p和q都是int类型的指针. p=q表示将q所指向的int类型变 ...
- 二级指针做输入_第2种内存模型
#define _CRT_SECURE_NO_WARNINGS #include <stdlib.h> #include <string.h> #include <std ...
- 计算机设备更新理由,电脑硬件明明升级了,为什么速度还这么慢?四种原因在背后作怪!...
原标题:电脑硬件明明升级了,为什么速度还这么慢?四种原因在背后作怪! 电脑硬件在我们生活中很常见,指的是通过更换更高的硬件或者是加装硬件来提高电脑的性能,在很多朋友的心目中都会有这样的一个误区,就是电 ...
- 有种中年危机,叫“过了35岁还没副业”,3种方法让你下班赚到钱
昨天加班回家的时候,下着大雨,在家楼下的停车场里却看见了同层楼的老李,抽着烟坐在车里,脸色很难看. 有种中年危机,叫"过了35岁还没副业",3种方法让你下班赚到钱 我走过去,关切的 ...
- delete 删除指针
危险的代码: int* p=new int(1); delete p; delete p; 安全的代码: int* p=new int(1); delete p; p = NU ...
最新文章
- ASP.NET Core 数据保护(Data Protection)【中】
- xp与Vista双系统 相关问题
- string.h包含哪些函数_多个函数组合拳专治不规则时间转化难题|Excel134
- P2396-yyylovesMathsVII【状压dp】
- ruby array_Ruby中带有示例的Array.fill()方法(1)
- 1.6编程基础之一维数组_01与指定数字相同的数的个数
- 新中大怎么修改服务器,新中大如何修改服务器地址
- 屏幕空间的动态全局光照(漫反射)
- Hackintool 3.4.7中文版 (黑苹果必备工具箱神器)
- 百度云apkg手机文件怎么打开_30秒教你找回vivo手机误删文件,要是你不会的话,那也太可惜了吧...
- [最新] Android 代码规范大全(Android开发速看)
- 【转载】Kali Linux 64位架构安装Veil-Evasion
- html万花筒图片轮播代码,jQuery实现可拖拽3D万花筒旋转特效
- 教师使用计算机的能力提升,计算机专业教师教学能力提升途径
- html5设置视频显示第一帧,【前端】如何在video上显示视频的第一帧
- 记war exploded部署不成功
- 主动访问用户数据 ——被站长忽视的内容
- Linux 磁盘划分 LVM 逻辑分区管理步骤
- Excel+VBA+之快速上手
- 打包aab_手动安装Android .abb(bundletool 如何使用)(.aab安装)(GooglePlay测试)...
热门文章
- 大学电子竞赛及项目~总贴
- 一些计算机u口无法使用的原因,电脑USB接口不能使用的原因分析
- Singularity 代码阅读笔记[结构: Struct_Microsoft_Singularity_BootInfo]
- 计算机dns服务器错误或不存在,找不到服务器或 DNS 错误,详细教您找不到服务器或dns错误怎么解决...
- 子网掩码及其与IP地址、网关的关系
- matlab中eval函数保存图片,Matlab中eval函数的使用方法。
- PE文件加节感染之Win32.Loader.bx.V病毒分析
- 【转】 HMC与VIOS对新LPAR提供存储与网络虚拟化的支持
- 英谷Oracle答案,火焰纹章风花雪月各角色能学什么魔法 各角色可习得魔法与熟练度要求一览...
- Android Studio 连接手机进行调试