[c++] C ++ new int [0] - 它會分配內存嗎?



Answers

是的,像這樣分配一個零大小的數組是合法的。 但是你也必須刪除它。

Question

簡單的測試應用程序:

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

輸出:

0x876c0b8

所以它看起來像是有效的。 標準對此有何評論? “分配”空的內存塊是否合法?




是的,分配一個0大小的塊與new是完全合法的。 你根本無法做任何有用的事情,因為沒有有效的數據供你訪問。 int[0] = 5; 是非法的。

不過,我相信這個標准允許像malloc(0)這樣的東西返回NULL

你仍然需要delete []你從分配中獲得的任何指針。




Related