大家知道,可以用VirtualAlloc先保留一个大范围的虚拟地址空间,然后再一点一点的提交物理内存.
现在有一个问题,如果我保留了一个8M空间,但是当时只提交了4M物理内存,然后进行了其他内存操作,最后,我又将剩下的4M提交了物理内存,这样,在8M空间内,虽然虚拟地址连续,但是物理地址可能是不连续的吧
这样的话,如果我使用memcpy,memset,strcpy之类的函数,进行跨这两个4兆空间的操作时,会不会出现错误呢,也就是说,这些函数的参数应该都指的是虚拟地址吧,如果发现其所操作的虚拟空间并不是全部映射到一个连续的物理空间时,会不会自动调整以适应呢?
现在有一个问题,如果我保留了一个8M空间,但是当时只提交了4M物理内存,然后进行了其他内存操作,最后,我又将剩下的4M提交了物理内存,这样,在8M空间内,虽然虚拟地址连续,但是物理地址可能是不连续的吧
这样的话,如果我使用memcpy,memset,strcpy之类的函数,进行跨这两个4兆空间的操作时,会不会出现错误呢,也就是说,这些函数的参数应该都指的是虚拟地址吧,如果发现其所操作的虚拟空间并不是全部映射到一个连续的物理空间时,会不会自动调整以适应呢?
解决方案 »
- VC6.0中写了下面代码,结束需要回车后,按Ctrl+Z,然后按2下回车才能结束!这是为什么?
- 画笔默认宽度与宽度设为2,怎么占用cpu差距那么大(40ms一次,非常频繁)
- richeditctrl StreamIn(SF_RTF,es) 失败
- 如何将数组中的各个数放入对话框的各个Edit控件里?
- 请教:一个关于加法的算法问题?
- 有关MSComm脱离VC环境运行的问题!
- programme 还是 girlfriend??
- 那里有用hook拦截api的例子?最好有原理讲解
- 菜鸟的问题:dll中有主函数吗?
- 发自肺腑的,真心的请教,跪求“MFC中进行AT指令控制方法”(菜鸟求教)
- 急,帮忙
- delete时 提示未处理的用户异常 求大侠帮我看看
你说的情况就是两个页在物理上是分离的
但在逻辑上(虚拟地址)是相邻的。
memcpy,memset,strcpy是相对于虚拟地址来说的。
他们肯定能够处理这种情况