带可选参数的C ++内存泄漏

时间:2016-04-29 11:16:06

标签: c++ memory-leaks optional-parameters

以下代码导致内存泄漏。有谁知道为什么?

(我正在运行代码,然后查看Windows任务管理器/进程选项卡/内存列,看看它是否正常运行。我正在使用GCC编译器。)

#include<vector>
using namespace std;

vector<int> f() {
    vector<int> v;

    int ctr = 8;
    while(ctr--) v.push_back(ctr);

    return v;
}

void g(vector<int> v = {}) {   // strangely enough, no leaks if defined 
    v = f();                   // like void g(vector<int> v = vector<int>{})
}

int main() {
    int ctr = 999999;
    while(ctr--) g();
}

0 个答案:

没有答案