博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于“为什么delete以后指针还能被赋值”一种描述
阅读量:4223 次
发布时间:2019-05-26

本文共 429 字,大约阅读时间需要 1 分钟。

    首先,系统知道哪一部分堆的线性空间被占掉了,new就是起这个作用,仅仅是声明一下(可能多了一个功能),因为堆的空间不一定是直接从系统调用获得的,堆的空间是这样管理的:程序先伸请一个大的堆空间,这个时候是通过系统调用获得空间,以后的每一次new都是从这个已获得的空间里面再进行零售分配,与系统调用无关,只有当这个大的堆空间不足时,才会再次调用系统调用申请更多空间(new触发).所以,即使一个指针被delete掉,指针的值如果不变,他所指向的空间仍然在那一个大块空间里,仍然是属于进程的线性地址空间,估计,这个空间的权限是可读可写可执行的,所以,delete掉以后,仍然可以对它赋值,读。

    程序装载到线性地址空间是按分页进行的,好进行虚拟地址与物理地址的映射,而每个页都有一个权限,比如:代码段就是只读的,而堆对应的页的权限,是可读可写可执行。

转载:http://blog.chinaunix.net/uid-22174570-id-1786893.html

你可能感兴趣的文章
主键和唯一索引的区别
查看>>
linux下使用yum安装gcc详解
查看>>
aclocal安装依赖的库
查看>>
String和常量池值的变化
查看>>
FastDFS 安装及使用详解
查看>>
ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)解决方案
查看>>
Host 'XXX' is not allowed to connect to this MySQL server解决方案
查看>>
corosync pacemaker 配置高可用集群(一)
查看>>
5种IO模型、阻塞IO和非阻塞IO、同步IO和异步IO
查看>>
nginx(一) nginx详解
查看>>
nginx(二) nginx编译安装 及 配置WEB服务
查看>>
nginx(三) nginx配置:反向代理 负载均衡 后端健康检查 缓存
查看>>
nginx(四) nginx+keepalived 实现主备+双主热备模型的高可用负载均衡代理服务
查看>>
jQuery核心--多库共存
查看>>
4 51 单片机最小系统
查看>>
6 51点亮第一个LED
查看>>
8 51 LED流水灯
查看>>
Multisim 14.0 搭建并仿真51单片机最小系统
查看>>
51 中断系统 外部中断0 外部中断1
查看>>
51 单片机 时间/计数器中断
查看>>