Jon*_*ehl 7 c++ free null memory-management allocator
这两个free(NULL)和::operator delete(NULL)是允许的.分配器概念(例如std :: allocator是否允许deallocate(NULL,1),或者是否需要自己保护它?
GMa*_*ckG 10
您需要添加自己的支票.
根据§20.4.1.1/ 8,deallocate要求:
p应该是从allocate()获得的指针值.n应该将作为第一个参数传递的值等于返回p的allocate的调用.
allocate无法提供存储时抛出异常(§20.4.1.1/ 7).换句话说,allocate永远不会返回0,因此永远不会返回deallocate0.传递0会导致未定义的行为.