与数组中元素的普通分配相比,使用动态内存分配创建数组有什么优势?动态内存分配
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. java动态内存分配
- 2. RECV动态内存分配
- 3. 动态分配内存
- 4. 动态内存分配
- 5. 动态内存分配
- 6. 动态内存分配
- 7. 动态内存分配不匹配
- 8. 动态与静态内存分配
- 9. 动态分配或浪费内存?
- 10. 带字符的动态内存分配
- 11. 练习中的动态内存分配
- 12. 动态分配泄漏内存?
- 13. 动态内存分配与阵列
- 14. 动态内存分配和使用C
- 15. 二维动态内存分配 - ObjectiveC
- 16. 动态内存分配“删除”
- 17. 动态分配内存结构c
- 18. C结构表动态内存分配
- 19. Mips动态内存分配和指针
- 20. 分配动态内存给玩家ID
- 21. 带结构的动态内存分配
- 22. 替代动态分配内存?
- 23. 指针和动态内存分配
- 24. 动态内存分配问题
- 25. MPI中的动态内存分配
- 26. 对象的动态内存分配
- 27. 释放动态分配的内存
- 28. 如何正确动态分配内存?
- 29. Arraylists的动态内存分配?
- 30. 使用malloc分配动态内存
听起来像功课吗? – 2010-02-22 15:58:23
在某些平台上,动态内存区域比本地(或自动)存储区域大得多。通常而言,*堆*可能允许比* stack *或* application local *存储更大的存储空间。 – 2010-02-22 18:33:43