开始看STL源码分析,最开始讲到allocator,然后侯捷模拟了两种内存分配方式,感觉挺不错的所以记录下来:
1. 是分配一块新的内存空间 即:利用malloc或者new 来分配新的空间
2. 在旧的空间上替换新的值 即:placement new
例子:
第一种利用 全局new 函数 实际上就是利用 calloc分配一块新的空间。
第二种利用 placement new 实际上就是赋值,在以p开始的空间上 赋值为value.
当然与之对应的就是释放空间了。
1. 是释放掉内存空间 即:free 或者delete
2. 调用析构函数析构掉对象,但是内存空间没有释放 即~T();
例子: