我使用 Visual Studio 2010 编译器编译此代码:
#include "stdafx.h"
#include <iostream>
int main() {
int *p;
p = new int(255);
delete []p;
}
它的反汇编,不同于Dev C++。似乎它首先检查是否有足够的内存,然后开始分配。我对吗?
这是拆解:

在橙色节点中:
为什么esi并edi推入堆栈?我mov eax,0CCCCCCCCh以前在书中看到过,这条指令有什么作用?橙色节点突出显示的部分有什么作用?是否检查是否有足够的可用内存?
在蓝色节点中:
FFh等于255,你能解释一下内存是如何分配的吗?