回答
不,這是不允許的。在[expr.new]/1 新表達 S中的語法指定
noptr新聲明符:
[
表達]
屬性說明符-SEQ opt
noptr-new-declaration rator [常數表達式] 屬性說明符-SEQ選擇
很明顯,有在代碼中括號之間沒有表達。它也沒有意義:你怎麼能分配一個未知長度的數組?
如果您需要動態更改大小的陣列,請使用std::vector
。
如何定義「expression」? –
@BartekBanachewicz這不是一個'語句'的東西。由於這是不是非常有幫助:http://stackoverflow.com/questions/3846727/why-is-the-difference-between-an-expression-and-a-statement – druckermanly
C++編譯器見於Ger.Offen定義擴展允許聲明大小= 0 Usualy的陣列也可以是一種用於在結構最後字段聲明有用這樣你就可以結構分配期間選擇這樣陣列的長度。
struct A
{
float something;
char arr[];
};
所以,如果你喜歡咱們說ARR分配這樣一個有7個元素,你這樣做:
A* p = (A*)malloc(sizeof(A) + sizeof(char)*7) ;
你應該注意到的sizeof(A)是等於sizeof(浮動),所以對於編譯器你的ARR字段是0大小。
現在你可以使用你的編曲場多達7項指標:
p->arr[3]='d';
儘管此功能在一些實現確實存在,這不是使用'new'的數組動態分配。 – didierc
- 1. 如何在數組大小固定的情況下插入數組?
- 2. 動態變化/分配UI可調整大小的情況下
- 3. 共享指針在不分配的情況下工作
- 4. 如何在不分配數組變量的情況下訪問數組元素?
- 5. VBA在數據量很大的情況下緩慢分配
- 6. 在這種情況下,數組大小問題在javascript中?
- 7. 如何在編譯時未知大小的情況下動態分配固定字符數組?
- 8. 在不使用動態內存分配的情況下聲明可變大小的數組
- 9. 如何在不知道原始數組大小的情況下增加動態數組(C++)的大小?
- 10. 在這種情況下的MySQL大小?
- 11. LibGit2Sharp CheckoutPaths()在不指定分支的情況下還原文件
- 12. 動態分配 - 用戶在運行前不知道數組大小的情況下輸入元素
- 13. 動態數組在沒有malloc的情況下分配
- 14. 如何在不指定緩衝區大小的情況下將C++數組編碼爲C#?
- 15. 如何在不分配新內存的情況下刪除部分數組?
- 16. 下載大小不指定
- 17. featherlight.js - 在不調整大小的情況下打開大圖像
- 18. 如何在不區分大小寫的情況下讀取cassandra數據
- 19. 在不知道大小的情況下下載文件
- 20. Java - 在不知道大小的情況下從txt文件填充長數組?
- 21. 爲什麼數組的大小在兩種情況下都不相同?
- 22. 在不改變數組大小的情況下將對象移動到NSMutableArray中
- 23. 如何在不創建新的情況下減少數組大小?
- 24. 我可以在不設置大小的情況下使用C++ char數組嗎?
- 25. 在不初始化大小的情況下存儲字符串數組
- 26. 在不改變分辨率的情況下縮小圖像大小
- 27. 如何擺脫在這種情況下,未分配的指針?
- 28. Android:指定數組大小?
- 29. 默認情況下ORACLE 11g不區分大小寫
- 30. JPQL查詢:使用ORDER BY情況下不區分大小寫
它在所有的標準無效。什麼是語義? – didierc
我認爲*能*使這個有效的例外是用戶定義的位置new,其中用戶定義的參數是空的;但在這種情況下,你需要傳遞地址,所以,不要。 –
我想你可能會尋找爲['的std :: VECTOR'(http://en.cppreference.com/w/cpp/container/vector) – sjdowling