gpt4 book ai didi

c++ - 计算内存使用情况?

转载 作者:太空宇宙 更新时间:2023-11-03 10:21:00 25 4
gpt4 key购买 nike

让我们考虑以下阶乘示例:

#include <iostream.h>

int factorial(int);

void main(void) {
int number;

cout << "Please enter a positive integer: ";
cin >> number;
if (number < 0)
cout << "That is not a positive integer.\n";
else
cout << number << " factorial is: " << factorial(number) << endl;
}

int factorial(int number) {
int temp;

if(number <= 1) return 1;

temp = number * factorial(number - 1);
return temp;
}

如何计算使用函数 factorial() 的内存?更准确地说,我想知道该函数使用了多少内存?

编辑:

这只是一个示例程序,我正在处理的程序有很多不同并且有很多函数,我实际上想计算每个函数的内存使用量。

最佳答案

由于函数只使用栈内存,所以可以存储temp的地址在你之前的全局变量中 return 1 , 并将其与 number 的地址进行比较:

#include <iostream.h>

int factorial(int);

void* tos;

void main(void) {
int number;

cout << "Please enter a positive integer: ";
cin >> number;
if (number < 0)
cout << "That is not a positive integer.\n";
else
cout << number << " factorial is: " << factorial(number) << endl;

cout << "factorial used " << ((char*)&number - (char*)tos) << " bytes of stack.\n";
}

int factorial(int number) {
int temp;

if(number <= 1) {
tos = &temp;
return 1;
}

temp = number * factorial(number - 1);
return temp;
}

关于c++ - 计算内存使用情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5201844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com