为什么C++没有对应realloc的new操作符呢?
http://blog.csdn.net/rabbit729/article/details/3400260
这个用memcpy明显是有问题的。如果类有资源分配的话,直接memcpy不能复制资源,会导致资源共享。然后旧对象的delete会导致新对象的资源丢失。
应该用swap的方式,这里C++89可能要自己循环实现,如果是C++11的话可以用std::swap<T, N>来实现。
还有那个sizeof用的很糟糕。
C++有vector等自适应大小的容器,所以对realloc的需求被削弱了
如果你想用realloc,请先考虑用标准容器
就是因为这一点,STL中的内存管理有的代码是用 malloc + realloc 实现的,而没有用new。具体可参考:STL源码剖析