malloc() free() C函数 不可重载
new delete C++表达式 不可重载
::operator new() ::operator delete() C++函数 可以重载
allocator:: allocate()
allocator:: deallocate()
C++标准库
可以自由设计并以之搭配任何容器
void* p1=malloc(512);//512byte free(p1); complex* p2=new complex ;//object delete p2; void* p3= ::operator new(512); ::operator delete(p3); #ifdef _MSC_VER int* p4=allocator ().allocate(3,(int*)0);//3 ints //(int*)0无用 allocator ().deallocate(p4,3); #endif #ifdef __BORLANDC__ int* p4=allocator ().allocate(5);//5 ints allocator ().deallocate(p4,5); #endif #ifdef __GNUC__ void* p4=alloc::allocate(512);//512 bytes alloc::deallocate(p4,512); #endif #ifdef __GNUC__ void* p4=allocator ().allocate(7);//7 ints allocator ().deallocate((int*)p4,7); //pool内存池 void* p5 = __gnu_cxx::__pool_alloc ().allocate(9); __gnu_cxx::__pool_alloc ().deallocate((int*)p5,9); #endif
以上来自侯捷老师视频仅用于学习。



