c++中new在子函数中的使用

来源:互联网 发布:淘宝联盟有什么用 编辑:程序博客网 时间:2024/06/06 08:36

写完一个程序后有一点困惑,为什么不会崩溃?

程序大致如下:

#include<iostream>struct free{int i;}; const free & clone(free& ft){free *pt = new free;*pt=ft;return *pt;}int main(){using namespace std;free in;in.i=0;cout<<(clone(in).i);}

如果将
free *pt = new free;
改变为  free   pt,程序会崩溃。

经过查阅资料发现,new之后得到的空间不会随着函数的结束而结束,需要自己用delete释放空间,否则会导致内存泄漏。

1 0
原创粉丝点击