标题:C++用到CObArray类时,出现空指针的问题,帮忙啊!!
只看楼主
hong4781798
Rank: 1
来 自:中国河北
等 级:新手上路
帖 子:28
专家分:0
注 册:2010-4-17
结帖率:90%
已结贴  问题点数:10 回复次数:7 
C++用到CObArray类时,出现空指针的问题,帮忙啊!!
编写驾驶证管理的时候变量为CObArray类的,当用完后不知道如何释放空间,撤销操作时会出现错误,不明白,望大虾们帮忙啊!!
搜索更多相关主题的帖子: CObArray 指针 
2010-10-19 00:37
hong4781798
Rank: 1
来 自:中国河北
等 级:新手上路
帖 子:28
专家分:0
注 册:2010-4-17
得分:0 
回复 楼主 hong4781798
程序的代码有这两个文件因为太大了,所以只好单个的贴上来了,望大侠们多多帮忙啊!初学C++,谢谢!!
licence.rar (702 Bytes)
licence00.rar (1.95 KB)
2010-10-19 00:39
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
得分:0 
查找MSDN 看相关类的使用说明 和包含的成员函数
2010-10-19 08:59
lintaoyn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:605
专家分:2489
注 册:2009-4-8
得分:5 
程序代码:
int manager::cancel (CString id)
{
//    licence *lic=new licence();
    for(int i=0;i<licences.GetSize();i++)
    {
        licence *lic = (licence *)licences.GetAt(i);
        if(! (lic->getid()))
        {     
//            delete lic;
            licences.RemoveAt (i);
            break;
        }
    }
    return 0;
}
licences.GetAt(i)返回的是CObject*。
还有for里面的,lic是不是还指向用new申请的为licence分配的内存。
我说不清,几个类看的也不是很明白,但是这样改了运行时,不会有报错了。
总之delete只能释放由new申请的内存,可以用基类的指针去释放实际为其派生类的内存(基类的析构函数得是虚的),反过来是不行的。

迭代的是人,递归的是神。
2010-10-19 09:29
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
得分:5 
licence::~licence()
    {
      delete[] name;
      
    }

char *name ;

初始化:
     name = new char[length];
     strcpy(name, desc);
上面对话框的意思是释放堆内存失败
2010-10-19 10:01
hong4781798
Rank: 1
来 自:中国河北
等 级:新手上路
帖 子:28
专家分:0
注 册:2010-4-17
得分:0 
回复 3楼 hahayezhe
好的,谢谢了
2010-10-19 12:34
hong4781798
Rank: 1
来 自:中国河北
等 级:新手上路
帖 子:28
专家分:0
注 册:2010-4-17
得分:0 
回复 4楼 lintaoyn
好的,十分感谢啊
2010-10-19 12:37
hong4781798
Rank: 1
来 自:中国河北
等 级:新手上路
帖 子:28
专家分:0
注 册:2010-4-17
得分:0 
回复 5楼 missiyou
谢谢
2010-10-19 12:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-323306-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.149145 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved