【问题标题】:What does "memory allocation" actually mean in C [closed]C中的“内存分配”实际上是什么意思[关闭]
【发布时间】:2018-09-13 20:35:57
【问题描述】:

我最近在接受采访时,收到了一张带有一些函数签名的纸,并要求我填写代码,还被指示不要“分配内存”。

这个问题相对简单(列表中最小的值),所以我递归地解决了它,面试官似乎对此不以为然,他们似乎暗示我可以在堆栈上声明变量,但我很紧张,遗憾的是没有按下面试官就可以了。

在 C 中“分配”内存是什么意思?

【问题讨论】:

  • 没有一种叫做 c/c++ 的语言(应该是任何采访的一部分;)
  • 坦率地说,您的问题非常模糊。你为什么不显示代码,然后我们可以告诉你分配在哪里以及如何避免它
  • 您本可以推回 -- 堆栈上的变量分配。它们被分配在堆栈上。如果面试官说错了,你可以让他们坚持,或者让他们更正他们的要求。
  • 问题应该更清楚了。如果无法分配内存,则根本无法运行程序。我猜他们的意思是“没有 malloc/calloc/realloc/free”,但嘿,只是猜测:)
  • 除了没有 malloc/calloc 我想他们也意味着没有 VLA。最终,我认为这个要求会更好地表达为“你的内存使用量应该是 O(1)”,即与输入大小无关。

标签: c memory allocation


【解决方案1】:

分配内存意味着您为程序保留位于 HEAP 部分的内存量。相反,当你不分配内存时,新变量存储在堆栈部分。

What and where are the stack and heap?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-30
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 2020-02-15
    • 2022-01-01
    相关资源
    最近更新 更多