new 分配内存,返回指针 new 类型名T (初值列表) 功能:申请用于存放T类型对象的内存空间,并依初值列表赋以初值 结果值: 成功->T类型的指针,指向新分配的内存 失败->0(NULL) int *pl = new int; int *pl = new int(10); 注意与malloc的区别 malloc(m):开辟m字节长度的地址空间,并返回这段空间的首地址. sizeof(x):计算变量x的长度. free(p):释放指针p所指变量的存储空间,即彻底删除一个变量. delete
下面是c++源码: class X { private: int _x; public: X() : _x(xx) {} ~X() {} }; int main() { X* xp = new X; delete xp; } 代码很简单,在main函数里面先用new构造一个堆对象,然后用delelte释放此对象. 接下来看构造堆对象的汇编码: : X* xp = new X; ;压入对象的大小4byte,为调用operator new函数传递参数 @YAPAXI@Z ; 调用operator n