功能使用了多少内存?

Ill*_*ist 4 c++ memory-management function

我在接受采访时被问到这个问题 - "功能使用了多少内存?".所以我试着回答说你可以把所有数据变量所占用的所有内存,它实例化的数据结构加起来 - 例如加长4个字节,1个用于char,4个用于int,32位用于32位指针系统,并添加动态分配的任何输入.面试官对我的回答不满意.

我正在学习C++,并会欣赏任何见解.

Jac*_*ack 7

问题非常明确.函数本身将仅从调用者,参数及其堆栈上的局部变量占用其激活记录的空间.根据体系结构,激活记录将包含诸如保存的寄存器,调用函数时返回的地址等等.

但是函数可以在堆上分配它需要多少内存,因此没有精确的答案.

哦另外,如果函数是递归的,那么它可能会占用大量内存,总是因为每次调用之间需要激活记录.


小智 4

从静态行为的角度来看, 1. 它使用的数据 - 所有变量内存大小的总和 2. 指令的大小 - 函数内编写的每条指令都会占用一些二进制内存。这就是确定函数大小的方式。这只是您编译的代码大小。从动态行为(运行时)的角度来看,1.由于函数调用而产生的堆内存是函数内存。