当前位置:  技术问答>linux和unix

suse linux 下 C++ delete问题,请执教。

    来源: 互联网  发布时间:2016-03-03

    本文导语:  使用g++编译器编译以下代码,调试发现,子类对象在delete后,对象的成员依然可以正常访问。 红色部分打印结果依然正确。 有没有大虾清楚linux内存管理机制, 提问如下: 1.如下的方法,系统是否能正常收回内存?...

使用g++编译器编译以下代码,调试发现,子类对象在delete后,对象的成员依然可以正常访问。 红色部分打印结果依然正确。
有没有大虾清楚linux内存管理机制,
提问如下:
1.如下的方法,系统是否能正常收回内存? 
2.是否有g++编译选项可以杜绝此类现象发生,因为在VC下调试,delete后内存会被填充无效值。 LINUX下是否可以??

多谢赐教,非常感谢。

#include "stdio.h"

class Cchild
{
public:
int age;

virtual void print()
{
printf("Cchild print!n");
};
};

class Cboy:public Cchild
{
public:
int sex;

Cboy(int s)
{
sex = s;
};

void print()
{
printf("Cboy print!n");
};
};


int main(int argc, char* argv[])
{
    Cboy *boy = new Cboy(1);
    
if (NULL == boy)
{
return -1;
}

boy->age = 10;

// delete it
delete(boy);

printf("%dn", boy->sex);
return 0;
}

|
delete boy后
boy仍然指向原来的空间
这部分空间标记为未使用
如果这部分空间没有被覆盖 你可能还能获得原来的数据

杜绝此类现象发生就要你自己控制了
delete之后
boy = NULL;
以后访问boy先判断boy是不是NULL

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 开源云计算 SUSE Cloud
  • 求SUSE的YaST源代码
  • 有谁知道suse linux 8.1下载的地方?在此谢过!
  • SuSe Linux 和 Red Hat那个好?
  • 求援SUSE Linux 1.0 安装问题
  • suse11,怎么修改字符编码?
  • 请教关于suse 11与suse 9密码复杂度配置的问题
  • xp下如何安装suse
  • 请问在Linux(suse)下怎样安装配置Mysql急!!!!
  • 请教高手,如何在VMware下安装suse10.0??请指教,谢谢。
  • 请教一下关于SUSE Linux的安装问题
  • 安装suse linux 10.0出现的问题
  • suse版本问题和学习选何用版本
  • suse enterprise 10 安装telnet-server包
  • xp下安装一个虚拟suse的问题
  • 请教一个关于SUSE Linux的简单问题
  • suse 安装提示找不到Installation CD
  • 关于suse 10下的nautilus启动失败的问题
  • 安装SUSE之后没有设置用户,重启后直接进入登陆界面
  • [suse]cannot get binary type


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3