Windows高级编程01:虚拟内存地址的分区

1.空指针赋值分区:

  帮程序员捕获对空指针的赋值。如果进程中的线程试图读取或写入这一分区的内存地址,就会引发访问违规。

 
 
  1: int* pnSomeInteger = (int*)malloc(sizeof(int));
  2: *pnsomeInteger = 5;

如果malloc无法分配足够的内存,那么它会返回NULL,但是代码并没有考虑这种可能,而造成的结果就是。访问禁止访问的内存地址。

2.用户模式分区:

这一分区是进程地址空间的驻地。

进程无法通过指针来读取、写入或以任何形式,访问驻留在这一分区中其他进程的数据。

3.内核模式分区:

是操作系统代码的驻地。与线程调度、内存管理、文件系统支持、网络支持一截设备驱动程序相关代买都挂在这一区域。

4.64kb禁写区:

我也不晓得干什么的。

转载于:https://www.cnblogs.com/yjjn/archive/2011/08/22/2149915.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值