Window操作系统为进程分配堆内存的问题

RT
教科书上说windows系统为每个进程都会分配3-5个1M大小的堆,但是我这边运行结果
却和书上说的差别挺大,我的程序得到的结果是只有系统只为我的进程分配了一个堆,而且这个堆的大小我也不知道是多大。
代码如下:

 HANDLE hHeap = GetProcessHeap();
    cout << "第一个堆: " << hHeap << endl;
    HANDLE hHeaps[256] = {0};
    DWORD num = GetProcessHeaps(256,hHeaps);
    cout << "num = " << num << endl; 
    for(DWORD i = 0; i < num ; ++i)
        cout << "堆" << i+1 << ": "<< hHeaps[i] << endl;

运行结果如下:
图片说明

我的操作系统是window7 64位
使用的ide是vs2012

具体问题如下:
1、windows7是否与以前的windows系统在为进程分配堆的方案上有所不同?
2、如果确实win7只能分配一个堆给进程,那这个堆有多大?或者说我怎样可以查询这个堆的大小?

多谢解答

Windows进程启动后默认是一个堆吧,最小是2M;

实在是穷,1个C币已是全部家当

The GetProcessHeaps function obtains a handle to the default heap of the calling process, plus handles to any additional private heaps created by calling the HeapCreate function on any thread in the process.
The GetProcessHeaps function is primarily useful for debugging, because some of the private heaps retrieved by the function may have been created by other code running in the process and may be destroyed after GetProcessHeaps returns. Destroying a heap invalidates the handle to the heap, and continued use of such handles can cause undefined behavior in the application. Heap functions should be called only on the default heap of the calling process and on private heaps that the process creates and manages.