我现在想知道这些指令是如何分配内存的。
例如,如果我得到代码怎么办:
x = new int[5];
y = new int[5];
如果这些是分配的,它在 RAM 中的实际外观如何?是否为每个变量或块保留了整个块(内存页面或如何称呼它 - 32 位大小为 4KB)为 2 个变量共享?
我在任何手册中都找不到我的问题的答案。感谢所有回复。
我在维基百科上发现:页面的内部碎片很少有进程需要使用确切数量的页面。结果,最后一页可能只是部分填满,浪费了一些内存。较大的页面大小明显增加了这种方式浪费内存的可能性,因为更多可能未使用的内存部分被加载到主内存中。较小的页面大小确保更接近分配中所需的实际内存量。例如,假设页面大小为 1024KB。如果一个进程分配 1025KB,则必须使用两个页面,从而导致 1023KB 的未使用空间(其中一个页面完全消耗 1024KB,而另一个仅消耗 1KB)。
这就是我的问题的答案。总之谢谢各位。