我试图通过使用指针来分配1 KiB的内存
GetProcessMemoryInfo(GetCurrentProcess(), &pmc, sizeof(pmc));
        std::cout << pmc.WorkingSetSize << " Current physical memory used by the process" << std::endl;
        int a = pmc.WorkingSetSize;
        char *test= new char[1024];
GetProcessMemoryInfo(GetCurrentProcess(), &pmc, sizeof(pmc));
        int b = pmc.WorkingSetSize;
            std::cout << "Actual allocated  " << (b - a) / 1024 << std::endl;
问题是每次我运行这个代码它似乎分配在100 KiB到400 KiB之间的任何地方我使用char,因为它的大小为1个字节
为了能够更快地满足未来(预期)分配(不必涉及操作系统),实现可以免费分配超出您背后的要求.这通常是一个很好的优化,没有什么可担心的 - 特别是因为操作系统甚至可能在实际写入它们之前甚至没有用实际物理页面来支持allcation,因此它通常根本不需要任何费用.
无论如何,从C++语言的角度来看; 只要你获得了你所要求的内存,实际分配更多的内容通常不是你可以知道的东西,也不是你应该关心的东西.