C+新的int[0]-它会分配内存吗?

C+新的int[0]-它会分配内存吗?

一个简单的测试应用程序:

cout << new int[0] << endl;

产出:

0x876c0b8

看起来很管用。标准是怎么说的?“分配”空内存块总是合法的吗?


一只斗牛犬
浏览 607回答 3
3回答

慕姐4208626

是的,像这样分配一个零大小的数组是合法的.但你也必须删除它。

隔江千里

标准是怎么说的?“分配”空内存块总是合法的吗?每个对象都有一个唯一的标识,也就是唯一的地址,这意味着一个非零长度(如果您要求零字节,实际的内存量就会悄然增加)。如果您分配了多个这些对象,那么您会发现它们有不同的地址。
打开App,查看更多内容
随时随地看视频慕课网APP