有一个问题不太明白。C语言编译器对指针访问越界不做检查,比如
int a[10],*p=a+9;
p++;p++;
可以正常通过编译。
但是操作系统内存管理模块不是会对各个程序的地址做检查保护么,那么在windows里,对于有类似错误的控制台程序程序还能够运行吗?操作系统一定能检测到错误并提示么?
在unix或linux里呢?
windows的存储管理是虚拟分页管理方式么?还是虚拟分段方式?或者虚拟段页式方式?如果是这些离散的存储管理方式,不是有针对于进程存储保护么?C语言又怎么可以让访存超越本进程的地址空间?
windows的存储管理是虚拟分页管理方式么?还是虚拟分段方式?或者虚拟段页式方式?如果是这些离散的存储管理方式,不是有针对于进程存储保护么?C语言又怎么可以让访存超越本进程的地址空间?
windows的存储管理是虚拟分页管理方式么?还是虚拟分段方式?或者虚拟段页式方式?如果是这些离散的存储管理方式,不是有针对于进程存储保护么?C语言又怎么可以让访存超越本进程的地址空间?
windows的存储管理是虚拟分页管理方式么?还是虚拟分段方式?或者虚拟段页式方式?如果是这些离散的存储管理方式,不是有针对于进程存储保护么?C语言又怎么可以让访存超越本进程的地址空间?
追答你说的这一大段不都是说得系统的吗?没c语言什么事。
追问C语言编译出来的程序,运行时不受操作系统管理么?