與數組中元素的普通分配相比,使用動態內存分配創建數組有什麼優勢?動態內存分配
Q
動態內存分配
5
A
回答
3
1)動態存儲器分配允許大量自由的,當涉及到管理對象的生命週期。
2)數組的大小也可以更自由地控制。
9
您不必事先知道數組的大小,或者過度分配內存來計算大型數組。這使您的程序在使用內存時更加高效。
4
動態創建的數組通常可以比自動創建的數組大,並且可以具有更長的生命週期。但是與使用std :: vector相比,兩者都有很多缺點。
2
int x[100];
是固定的大小,你不能展開。它的生命週期與創建它的環境有關,並且不能通過不同的功能/方法傳遞。
int *x = new int[n]; ... delete[] x;
可以重新分配,因此它可以調整大小,並且在編譯時不需要知道n(因此您可以詢問用戶需要多少個數字並創建該大小的數組)。正如@Neil Butterworth所指出的那樣,這是在堆上創建數組,並且可以是更大的尺寸,而靜態變量則是在堆棧上創建數組。
std::vector
包裝了很多這個魔術重新分配代碼,可能這是你應該在你的代碼中使用。
0
動態分配的數組的基本優點是,可以判斷在運行時動態分配的數組的大小,而且,由於該陣列是在堆上而不是堆,它可以比靜態較大陣列。儘管如此,記住這一點非常重要,std :: vector可以爲你工作。你應該在哪些場合展示你自己的數組類是少之又少的。當你分配數組則數組的大小在編譯時給予使用std ::載體,
0
。在那種情況下,大多數情況下,無論是分配更多內存還是分配更少內存。
這是動態分配內存可以幫助你,讓你可以實際分配僅是真正需要這些內存塊,並,當你與內存管理做,你可以釋放內存。
0
簡而言之,它有助於程序員創建用戶所說的大小數組。
相關問題
- 1. 動態內存分配
- 2. java動態內存分配
- 3. 動態內存分配
- 4. RECV動態內存分配
- 5. 動態分配內存
- 6. 動態內存分配
- 7. 動態內存分配在C++上的動態分配內存中
- 8. 內存分配和動態內存分配
- 9. 動態內存分配不匹配
- 10. 動態與靜態內存分配
- 11. 動態內存分配問題
- 12. 使用malloc分配動態內存
- 13. 動態分配內存的所有權
- 14. 使用fgets +動態內存分配
- 15. fortran77中的動態內存分配
- 16. 動態內存分配教材?
- 17. 帶字符的動態內存分配
- 18. scanf之後的動態內存分配
- 19. Mips動態內存分配和指針
- 20. 動態內存分配套接字C
- 21. 動態內存分配 - 二維數組
- 22. MPI中的動態內存分配
- 23. auto_ptr的動態內存分配
- 24. 二維動態內存分配 - ObjectiveC
- 25. 在GPU上動態分配內存
- 26. 動態內存分配在for循環
- 27. int數組的動態內存分配
- 28. VB6中的動態內存分配
- 29. 動態鎖定內存分配器
- 30. Arraylists的動態內存分配?
聽起來像功課嗎? – 2010-02-22 15:58:23
在某些平臺上,動態內存區域比本地(或自動)存儲區域大得多。通常而言,*堆*可能允許比* stack *或* application local *存儲更大的存儲空間。 – 2010-02-22 18:33:43