VirtualAlloc是最基本的内存分配函数,用任何函数创建的内存,都是直接或间接的通过这个函数创建分配的
内存映射文件分配函数使用 MapViewOfFile ,严格的说,他并不是分配内存的函数,他是通过操作系统间接分配的,而且它和普通的内存有区别,一般的内存是把页交换文件作为物理存储器的,而这个函数是把磁盘上的文件作为物理存储器的
VirtualAlloc 每次至少分配4KB大小的内存,所以使用起来不方便,微软提供了一套自动分配和管理内存的机制就是 堆 ,堆调用VirtualAlloc分配一块大内存,之后你再通过堆使用一块块小内存,比如 new malloc 等
普通变量和参数的传递是使用栈的,所以函数递归足够多次,程序就会挂掉,因为栈用光了