游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1076|回复: 1

求助:释放内存出错

[复制链接]

15

主题

59

帖子

59

积分

注册会员

Rank: 2

积分
59
发表于 2004-9-22 14:37:00 | 显示全部楼层 |阅读模式
typedef struct tagCONTROL
{        struct tagCONTROL*        lpNext;                // 下一个控件
        void*                                lpVoid;                // 下一个对话框
} CTRL, far* LPCTRL;

void Clear( LPCTRL lpDesktop )
{        LPCTRL        lpVoid, lpNext;
        // 删除对话框
        for( LPCTRL lpDialog=lpDesktop; lpDialog; lpDialog=lpVoid )
        {
                // 释放控件
                for( LPCTRL        lpControl=lpDialog->lpNext; lpControl; lpControl=lpNext )
                {                        lpNext = lpControl->lpNext;                        delete lpControl;
                }
                lpVoid = (LPCTRL)lpDialog->lpVoid;
                delete lpDialog;
        }
}

lpDesktop是LPCTRL类型桌面指针,lpVoid维护着一个对话框列表,lpNext维护着一个控件列表
可是当我调用Clear释放所有对话框的时候,总是在释放第一个控件的时候就出现程序错误
大家能不能帮我看看为什么

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2004-9-22 19:42:00 | 显示全部楼层

Re:求助:释放内存出错

首先你要确定你是在堆上分配内存,其次要你要确定在创建 tagCONTROL 的时候是否将成员 lpNext 置为 NULL.
而且,这种错误调试一下也应该发现问题所在,总不能遇上问题就到论坛求助吧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-18 17:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表