C++ C++;分配器<;X>;::是否允许取消分配(NULL,1)?

C++ C++;分配器<;X>;::是否允许取消分配(NULL,1)?,c++,memory-management,null,free,allocator,C++,Memory Management,Null,Free,Allocator,允许自由(NULL)和::运算符删除(NULL)。分配器概念(例如std::allocator)是否也允许解除分配(NULL,1),或者是否需要您自己进行防范?您需要添加自己的检查 根据§20.4。​1.1/8,解除分配要求: p应为从allocate()获得的指针值。n应等于作为 调用allocate的第一个参数返回p allocate在无法提供存储时引发异常(§20.4)。​1.1/7)。换句话说,allocate永远不会返回0,因此deallocate永远不会得到0。传递0将导致未定义的行

允许
自由(NULL)
::运算符删除(NULL)
。分配器概念(例如std::allocator)是否也允许解除分配(NULL,1),或者是否需要您自己进行防范?

您需要添加自己的检查

根据§20.4。​1.1/8,
解除分配
要求:

p应为从allocate()获得的指针值。n应等于作为 调用allocate的第一个参数返回p


allocate
在无法提供存储时引发异常(§20.4)。​1.1/7)。换句话说,
allocate
永远不会返回0,因此
deallocate
永远不会得到0。传递0将导致未定义的行为。

谢谢,这正是我担心的。