1.空指针赋值分区:

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

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

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

2.用户模式分区:

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

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

3.内核模式分区:

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

4.64kb禁写区:

我也不晓得干什么的。