malloc申请了一块内存,这块内存本身不在物理内存得地址范围之内,需要经过缺页中断以后从硬盘上调?
或者malloc申请的内存块的地址必须位于物理内存上?
除非你用的是不支持虚地址的嵌入式环境,否则你申请的内存都是虚地址,跟物理内存没什么关系。
至于虚地址是不是有物理内存对应,看OS实现,也看你申请的内存大小。
一般来说,对于malloc:
VC里,申请小内存一般都直接给你可用的内存。
GCC里,申请大内存不一定给你可用的内存。
当然,VC也可以申请内存但不占用物理内存(用别的API),GCC有时候也可以申请那种直接就可以用的物理内存(API不记得是什么了)。