您的位置:首页 > 编程语言 > C语言/C++

C++函数返回含堆数据的对象时,内存释放问题

2016-01-25 16:24 537 查看
class MyClass
{
public:
char *p;
MyClass()
{
p = new char[1];
p[0] = 'a';
p[1] = 0;
}

~MyClass()
{
delete [] p;
p = 0;
}
};

int _tmain(int argc, _TCHAR* argv[])
{
MyClass _2010_9_25_b();
MyClass c = _2010_9_25_b();

void _2010_9_25_c();
_2010_9_25_c();

int a = 1;

return 0;
}

MyClass _2010_9_25_b()
{
return MyClass();
}

void _2010_9_25_c()
{
MyClass();
}


实例代码的main函数中,方法_2010_9_25_b中创建的MyClass类型的对象赋值给了对象c,一直等main方法return 1时才会调用析构函数来销毁对象c中指针p所指向的堆数据;而方法_2010_9_25_c中创建的MyClass类型的对象在跳去函数后即调用了析构函数。



阅读(598) | 评论(0) | 转发(0) |

0
上一篇:[原]VS2008安装boost的lib库

下一篇:[C++]仿java.lang.String功能的字符串类[原]

相关热门文章

Redis源码学习-AOF数据持久化...

Greenplum创建表--分布键...

View与ViewGroup的概念

关于ip_conntrack跟踪连接满导...

我的第一个python程序之续集...

test123

编写安全代码——小心有符号数...

使用openssl api进行加密解密...

一段自己打印自己的c程序...

sql relay的c++接口

linux dhcp peizhi roc

关于Unix文件的软链接

求教这个命令什么意思,我是新...

sed -e "/grep/d" 是什么意思...

谁能够帮我解决LINUX 2.6 10...

给主人留下些什么吧!~~

评论热议
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: