c - 在堆栈上增长数组

标签 c memory-management stack alloca

这本质上是我的问题。在一个函数的生命周期中,我生成一些整数,然后在一个算法中使用整数数组,该算法也是同一函数的一部分。整数数组只会在函数内使用,因此将数组存储在堆栈上自然是有意义的。

问题是在生成所有整数之前我不知道数组的大小。

我知道如何在堆栈上分配固定大小和可变大小的数组。但是,我不知道如何在堆栈上增加数组,这似乎是解决我的问题的最佳方法。我相当确定这在汇编中是可能的,您只需增加堆栈指针并为每个生成的 int 存储一个 int,因此 int 数组将位于堆栈帧的末尾。这在 C 中可以做到吗?

最佳答案

我不同意您的断言“将数组存储在堆栈上自然是有意义的”。堆栈内存实际上是为您在编译时知道大小时而设计的。我认为动态内存是解决问题的方法

关于c - 在堆栈上增长数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28026370/

相关文章:

c - 在c中处理vector3d(x,y,z)运算的最佳方法

c - 为什么 C 中的递归会向后打印?

python - 使用名为 guppy ( heapy ) 的 Python 工具时 C 代码中的段错误

c++ - Objective-C++内存问题

Javascript 奇怪的 StackOverflow 错误

c - 从 xmm 寄存器中提取数据到 'standard' 变量,内在

c - 在 C 编程中使用字符串和子字符串的基础知识

Python3 - 处理大列表 : one class instance or creating new object for each element?

无法更改函数 x64 的返回地址

c++ - 在 C++ 中引用 stack<int>.top() 的返回值的正确行为是什么