为什么这段代码可能会在C ++中崩溃(指针返回)?

时间:2015-03-28 03:22:42

标签: c++

int& subtraction(int& a,int& b) {
    int* pc = new int;
    *pc = a - b;
    return (*pc);
}

我在Windows上运行此代码是正确的,但是当我 在Linux上做同样的事情会导致一些问题。它 不会导致运行时错误,问题是什么。 感谢

1 个答案:

答案 0 :(得分:2)

它有内存泄漏。考虑这种情况

int a =5, b =7, c =9;
int & d = subtraction(a,subtraction(b,c));

你将丢失减法(b,c)返回的指针的引用,你将无法释放变量。