C

时间:2015-05-24 12:51:59

标签: c arrays stack

我指的是基于数组的堆栈实现的源代码。 在页面的某个地方,它说,

  

动态大小的堆栈:现在,我们将为我们的方式添加一个选择   实现我们的堆栈。我们希望能够决定最大尺寸   运行时堆栈(非编译时)。

     

因此,我们不能使用常规数组,但必须使用指向a的指针   动态分配的数组。

     

现在,我们是否需要跟踪除此之外的任何其他信息   内容和顶部?

     

答案:是的!我们需要保持这个数组的大小,即   堆栈的最大大小。我们会在编写时看到为什么这是必要的   代码。

决定运行时堆栈的最大大小是什么意思,因为我们需要保持数组的大小,即最大大小?我们仍然需要存储堆栈最大大小的变量来动态分配内存,所以我不太确定这有什么好处,而不是有一个常规数组并声明它的容量(最大大小)。

1 个答案:

答案 0 :(得分:1)

因为使用动态分配的数组,您可以选择扩展它(在需要时分配更大的数组)或最小化它(释放一些内存以减少RAM使用)。

您可能指的是mallocreallocfree。你想要做的是使用malloc分配一些内存并将其大小保存在另一个变量中。

当堆栈耗尽时(即其中的项目数量等于其大小) - 您需要调用realloc来“展开”数组,并更新堆栈的大小。