C++内存耗尽

Pat*_*rio 0 c++ memory garbage

我一直在教自己C++,有人告诉我C++没有垃圾收集器.现在我不确定这意味着什么程度.

让我说我有这个代码:

double multiply (double a, double b) {
    double result = a * b;
    return result;
};
int main (char* args[]) {
    double num1 = 3;
    double num2 = 12;
    double result = multiply(num1, num2);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

乘法方法包含内部变量"result".现在是仍然分配和/或锁定变量"result"的内存地址?参数"a"和"b"怎么样?

Mat*_*Mat 5

标准C++根本没有垃圾收集器.

但是自动变量("堆栈"变量)在其范围结束时被清除,如果/在必要时调用析构函数.(示例中的所有变量都是自动的.)

您需要担心的是动态分配:您通过new运营商创建的任何内容.那些没有自动清理 - 你需要 delete他们或他们会泄漏.(或使用智能指针.)