爱问 爱问共享资料 医院库

C 指针问题

首页

C++指针问题

int fun()
{int *p=new int(2);
return *p;
}
int main()
{int a=fun();
cout<<a;

}
为什么p指向的内存无法释放,他是一个自动变量,函数生存期结束时系统不是自动释放吗?谢谢。
展开

提交回答
好评回答
  • 2008-11-28 19:34:08
     因为你是用new申请的动态内存,用new申请的内存是存放在堆中的,只有用delete去手动释放,系统不会自动释放。如果不用new的话就是放在栈中,这样就如你说的一样了,函数生存期结束时系统自动释放了。

    紫婷客人

    2008-11-28 19:34:08

其他答案

    2008-11-30 20:30:42
  • #include 
    #include 
    using namespace std;
    int fun() 
    {int *p=malloc(2); 
    return *p; 
    } 
    int main() 
    {int a=fun(); 
    cout<
    		                
    		            

    秋叶

    2008-11-30 20:30:42

  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...

爱问推荐

  • 1-20
  • 21-40
  • 41-60

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈
关注
爱问

关注爱问微信公众号,开启知识之旅,随时随地了解最新资讯。

确定举报此问题

举报原因(必选):