我正在解决一个测试问题,我不确定是否有正确的答案。问题是:如果我在32位操作系统下运行代码,在函数hook()中从函数malloc()返回的时刻,堆栈中将分配多少空间。还有一个假设,即所有需要的内存都被分配了。堆栈上分配多少空间
…char A[1000000]…
int hook() {char C[2000000]; …
ptr_char2 = (char) malloc (5000000)); /*Hi guys, how much memory do I have now?*/……
}
int main() {
char B[3000000];……
ptr_char = (char*) malloc (4000000));
hook();…
}
我知道在堆栈上存储静态分配的变量。动态分配在堆上。我试图计算字符A(0.9MB)+字符B(1.9)+字符C(2.8),大约需要5.6MB。但正确的答案是以下1MB,5MB或9MB之一。有人可以帮我解决我犯的错误吗?先谢谢你。
你应该在问题中包含代码*逐字*,请相应编辑,谢谢! –
你好,欢迎来到Stackoverflow。本网站提供问题和答案,以便他们可以在未来对其他人有用。为此,您需要发布实际的代码,而不是链接到它或它的图像。 – spectras
好吧,我只是把问题的截图,但我试图编辑它。抱歉。 – Kandri6