【问题标题】:What is the difference between Dynamic Array and Dynamically allocated array?动态数组和动态分配数组有什么区别?
【发布时间】:2018-01-26 16:43:47
【问题描述】:

根据动态数组上的维基百科页面,它们不是一回事。 Wiki page. 两个数组中的内存分配是如何工作的,我们在使用它们中的任何一个时需要记住什么以及更喜欢哪一个。 附言: 我是编程新手

【问题讨论】:

  • 来自您的链接:“动态数组与动态分配数组不同,动态数组是分配数组时大小固定的数组,尽管动态数组可能使用这样一个固定大小的数组作为后端。" 这句话有什么不明白的地方?如果你不说你不明白的东西,你很难向你解释。
  • 我现在尝试更详细地发布我的查询

标签: c++ arrays memory-management


【解决方案1】:

动态数组类似于数组,但它的大小是动态的,因此当它已满并且您向其中添加新元素时,它会占用更多内存。它们可以在堆栈或堆上创建。

动态分配的数组只是在堆上创建的数组。

【讨论】:

  • 你能否详细说明“内存满时抢更多内存”这一点
  • 所以对于动态数组,您最初设置了一个大小,比如 N 个元素。然后在填充所有 N 个元素之后,如果您尝试添加另一个元素,那么它将为数组重新分配内存以容纳 N+1 个元素。从本质上讲,如果您添加的元素数量超过它分配的空间,它就会增长。
【解决方案2】:

动态数组是一种抽象数据类型,其 API 与静态数组几乎相同,但它在内部使用动态分配的数组。

Python 中的列表是动态数组的一个例子; C 中的数组是静态数组,但该语言允许您在运行时动态分配数组。

【讨论】:

    猜你喜欢
    • 2011-01-21
    • 2020-09-18
    • 2013-03-17
    • 2012-09-14
    • 1970-01-01
    • 2022-11-20
    • 2019-06-18
    • 2014-10-08
    • 1970-01-01
    相关资源
    最近更新 更多