数组与0元素的对齐

时间:2017-12-16 08:53:40

标签: c++ c++11 language-lawyer allocator

C ++ allows dynamic allocation of zero-sized arrays

int* p = new int[0];
delete[] p;

我不能用这样的指针做很多事情(因为数组没有元素),但新表达式需要给我一个有效的(!= nullptr)指针然后我必须{再次{1}}就好像它是一个真正的数组。

是否有关于这种新表达式返回的内存对齐的要求?考虑:

delete[]

struct alignas(8) Foo { int x; }; Foo* p = new Foo[0]; delete[] p; 是否保证指向8对齐的地址?此外,如果我编写自定义分配器,在这种情况下我是否需要返回指向对齐地址的指针?

0 个答案:

没有答案