【发布时间】:2017-10-20 11:01:56
【问题描述】:
我读过关于可变参数函数“int func(int, ...)”的文章。
这些函数的参数在哪里分配(堆栈或堆)?
因为我读到va_end() 宏释放了分配给va_list 的空间,所以“释放”这个词引起了我的注意。
注意:我知道常规函数会进入堆栈,但这种类型的函数很有趣,因为参数的数量是未知的。
我只想确定它不像没有预定义空间的数组;
最后我们使用malloc() 和free()。
链接:https://www.tutorialspoint.com/cprogramming/c_variable_arguments.htm
【问题讨论】:
-
通常变量参数被压入堆栈,就像常规参数一样。您不必担心
malloc或free。 -
我只是想确定它不像没有预定义空间的数组:数组总是有一个预定义的空间。
-
它有什么不同?
标签: c heap-memory stack-memory