回答
簡單的答案是否定的,這是不能做到的。因此名稱爲「靜態」。
現在,許多語言的東西看起來像靜態分配的數組,但實際上是靜態分配的對動態分配數組的引用。那些你可以調整大小。
在VB .NET這將是:
Redim Preserve ArrayName(NewSize)
不知道什麼語言特點你後雖然...
而且我也不會用這個命令有很多...它可怕效率低下。鏈接列表和不斷增長的數據結構更加高效。
我也同意基思蘭德爾,儘管看起來好像我寫的語句重新定義了數組的大小它的原因效率低下的原因在於幕後實際上只是製作新的大小的第二個靜態數組,將值複製到其中,然後刪除舊的數組。 – Jrud 2009-11-05 04:48:49
不是。有兩個選項:
- 使用動態一個
- 或者,在浪費內存的風險,如果您有關於元素的數組將存儲的最大數量的想法,靜態相應地分配
是的,那是C.
如果您小心,可以使用alloca()
。該數組在堆棧中分配,但就代碼風格而言,它與使用malloc
(您不需要free
它自動完成)很相似。我會讓你決定是否調用一個「靜態」數組。
這不是一個你正在談論的動態數組嗎? – 2009-11-05 04:55:37
我並不確定你對靜態數組有什麼用處。如果有用的部分是你不必擔心釋放它們(並且你不關心這個語言是否提供漂亮的語法來創建它們),那麼alloca就可以做到這一點。 – 2009-11-05 05:04:59
@Ravi:不,不像「動態生命期」那樣是「動態的」,因爲由alloca()分配的數組具有自動生命週期(即與本地變量相同)。但是,它們的大小是在運行時確定的。 – newacct 2009-11-05 06:26:56
不可以。靜態分配給編譯器許可,以進行各種假設,然後在編譯過程中將其烘焙到程序中。
在這些假設是:
- 它是安全的把其他的數據陣列(不會離開你的成長空間)後,立即和
- ,該陣列開始在某個地址,然後成爲程序的機器代碼的一部分;你不能在某個地方分配一個新的數組(並使用它),因爲不能更新地址的引用。
(好吧,引用可以進行更新,如果程序存儲在RAM中,但是自修改方案在高度皺起了眉頭,而不是動態數組肯定比較麻煩。)
- 1. 我可以增加JPanel的大小嗎?
- 2. 可分配性和靜態大小的數組的性能
- 3. 我們可以增加數據類型的大小嗎?
- 4. 如何創建靜態分配的動態大小的數組?
- 5. 靜態數組,可變大小允許?
- 6. 如何動態增加數組大小
- 7. 動態增加/減少數組大小
- 8. 我們可以增加html中的字體大小嗎?
- 9. 我需要增加可能的最大數組大小
- 10. 動態分配大小的數組0
- 11. 我可以爲一個變量分配一個靜態類嗎?
- 12. Java增加數組大小
- 13. 動態數組大小分配
- 14. 靜態大小的組合
- 15. SWT - 我可以根據圖紙大小增大和縮小我的畫布嗎?
- 16. 我們可以動態地爲C中的靜態變量分配內存嗎?
- 17. 我可以將renderscript內存分配放入循環中以處理一系列可變大小的數組嗎?
- 18. 更改靜態數組的大小
- 19. 正確大小的靜態數組
- 20. 我可以用rx.js觀察數組的增加嗎?
- 21. 有人可以幫我增加一個數組的長度嗎?
- 22. 爲什麼分配heightmapResolution會增加我的地形的大小?
- 23. 我們可以將TextContext.TestDeploymentDir值分配給靜態類數據成員嗎?
- 24. 可以用kmalloc()分配的最大大小取決於free_area []的大小嗎?
- 25. 我可以用Cython創建一個靜態C數組嗎?
- 26. 我可以在Cython中靜態鍵入h5file數組嗎?
- 27. 可以增加MTD設備的邏輯擦除塊大小嗎?
- 28. 我可以根據增量大小限制rsync傳輸的大小嗎?
- 29. 動態增加JTable大小
- 30. 我可以增加設計中使用的授權令牌的大小嗎?
在什麼語言你在工作?這將使所有的差異。 – 2009-11-05 04:35:06
什麼語言?瞭解這將有助於您理解除靜態分配數組的定義之外的原因。 – strager 2009-11-05 04:35:12
這聽起來像是一個糟糕的(或詭計)作業問題。 – 2009-11-05 04:37:47