设计简单的C程序来分配堆栈中的所有内容或大多数内容是不是很糟糕?
答案 0 :(得分:15)
如果你真的不需要它,那么使用堆分配是不好的方式。特别是在简单的程序中。
答案 1 :(得分:3)
堆栈分配比堆分配便宜。堆栈的分配和释放只是简单的计数器递增和递减功能(或更精确:范围)进入/退出。堆分配意味着在可能分段的地址空间中找到足够大的内存块。因为堆栈分配几乎总是可取的。
不使用堆栈的主要原因是:
答案 2 :(得分:1)
如果我们把重点放在SIMPLE程序上,正如你所说,那么不,它并不是那么糟糕:)你也可以看看C99可变长度数组(这里有一个简单的例子:http://en.wikipedia.org/wiki/Variable-length_array)。
答案 3 :(得分:1)
堆的主要优点是可以动态分配它。如果你不知道你需要的变量的大小:堆它。
如果您的程序很简单,您可能不需要在堆上分配变量;但选择并不取决于程序的复杂程度,而是取决于您对变量的需求。 如果您需要在整个工作流程中访问/修改变量,通过几个函数,那么它在堆上更好。当你不再需要它时,你将释放它。 如果变量只是一个选项结构或一个计数器,那么堆栈就非常适合它。
答案 4 :(得分:0)
没有。除非你有变量具有非固定大小。这样的代码可能会很快地导致堆栈溢出。