在内存管理方面,这块C++被认为是否合适?

Pwn*_*nna 4 c++

我有点陷入内存管理的概念(我以前所有的编程语言都不需要我管理内存).如果我以后不销毁它,我不确定创建变量是否会消耗内存.

#include <math.h>
#include <iostream>
using namespace std;

double sumInfiniteSeries(double u1, double r){
 return u1 / (1 - r);
}

double sumInfiniteSeries(double u1, double r, bool printSteps){
 if (printSteps){
  double lastTotal;
  double total = 0.0;
  double sn = u1;
  for (int n=1;n<=1000;n++){
   lastTotal = total;
   total += sn;
   sn *= r;
   cout <<  "n = " << n << ": " << total << endl;
   if (fabs(lastTotal - total) < 0.000000000000001) return total;
  }
  return total;
 } else {
  return sumInfiniteSeries(u1, r);
 }
}
Run Code Online (Sandbox Code Playgroud)

我是否需要"破坏"这两个函数中的任何变量?

编辑:那么当我创建自己的类及其实例时,我是否需要启动内存管理?

Kon*_*lph 15

什么内存管理?你只在这里使用堆栈,不需要内存管理.

手动存储管理进场时,你拨弄newdelete.

  • ...你可以编写大量的C++代码,而不必使用`new`和`delete`(或`malloc`和`free`).处理C++手动内存管理的最简单方法是不要使用它,除非你绝对必须这样做. (11认同)
  • 而且你可以通过使用别人为你做的代码来避免更多地使用`new`和`delete`,例如STL. (10认同)
  • @Guillaume:当有人在谈论C++内存管理时.我们说的不是找到有效的结构,而是确保应用程序使用的所有内存最终*返回到C运行时/操作系统. (2认同)