【发布时间】:2018-09-13 20:35:57
【问题描述】:
我最近在接受采访时,收到了一张带有一些函数签名的纸,并要求我填写代码,还被指示不要“分配内存”。
这个问题相对简单(列表中最小的值),所以我递归地解决了它,面试官似乎对此不以为然,他们似乎暗示我可以在堆栈上声明变量,但我很紧张,遗憾的是没有按下面试官就可以了。
在 C 中“分配”内存是什么意思?
【问题讨论】:
-
没有一种叫做 c/c++ 的语言(应该是任何采访的一部分;)
-
坦率地说,您的问题非常模糊。你为什么不显示代码,然后我们可以告诉你分配在哪里以及如何避免它
-
您本可以推回 -- 堆栈上的变量已分配。它们被分配在堆栈上。如果面试官说错了,你可以让他们坚持,或者让他们更正他们的要求。
-
问题应该更清楚了。如果无法分配内存,则根本无法运行程序。我猜他们的意思是“没有 malloc/calloc/realloc/free”,但嘿,只是猜测:)
-
除了没有 malloc/calloc 我想他们也意味着没有 VLA。最终,我认为这个要求会更好地表达为“你的内存使用量应该是 O(1)”,即与输入大小无关。
标签: c memory allocation