一个简单的测试应用:
cout << new int[0] << endl;
Run Code Online (Sandbox Code Playgroud)
输出:
0x876c0b8
Run Code Online (Sandbox Code Playgroud)
所以它看起来很有效.标准对此有何看法?"分配"空白内存块总是合法的吗?
查看一些示例代码并遇到一些零大小的数组分配.我创建了以下代码片段来澄清我的问题
这是有效的代码:
class T
{
};
int main(void)
{
T * ptr = new T[0];
return 0;
}
Run Code Online (Sandbox Code Playgroud)
有什么用?ptr有效吗?这个构造是否可移植?