// newStudy.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <new> #include <string> #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int* pi = new int; //内置类型无初始化 string* ps = new string; //默认构造函数初始化 /* 定位new表达式使用 */ char Buffer[1024]; //已经在栈中分配好的内存,也可以在堆中分配 string* ps0 = new(Buffer)string; //在已分配的内存中构建对象 *ps0 = "123456789"; ps0->append("abc"); cout << ps0->c_str() << endl; ps0->~string(); //防止string对象内部内存泄露,调用析构函数,销毁自己 return 0; } /* 全局形式代码(其它形式) void* operator new(size_t size) { void* ptr = NULL; if (0 == size) { size = 1; } while (1) { ptr = malloc(size); if (NULL != ptr) { return ptr; } else { new_handler globalhandler = set_new_handler(0); set_new_handler(globalhandler); if(NULL != globalhandler) { (*globalhandler)(); } else { throw std::bad_alloc(); } } } } */