VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 931|回复: 7

[求助] 结构指针如何释放?

[复制链接]
56_avatar_middle
在线会员 发表于 2016-1-12 23:10:29 | 显示全部楼层 |阅读模式
3驿站币
代码如下,请问结构体指针如何释放啊, Book *mbook = new Book;
new 了一个,但是不知道在哪delete了,在线程程序下边执行会报错,
在分线程中释放也会报错.

typedef struct _Book
{
        int num;
        int price;
        int sizeB;
}Book;

UINT __cdecl ThreadProc(LPVOID lpParameter)
{
        Book *tipMsg = (Book*)lpParameter;
        ....
      //delete tipMsg; //也会报错啊,可以编译的
        return 0;
}
void CThreadTestDlg::OnBnClickedBtn()
{     
        Book *mbook = new Book;
       
        mbook->num=100;
        mbook->price=24;
        mbook->sizeB=16;

        CWinThread *pThread = AfxBeginThread(ThreadProc,mbook);
        //delete mbook; 错误
       
}





上一篇:MFC做的工控系统,定时删除数据出现与数据库访问冲突问题
下一篇:一道关于推箱子的游戏的程序设计
51_avatar_middle
online_admins 发表于 2016-1-12 23:29:35 | 显示全部楼层
按理说在线程函数中 delete 应该没有问题的,为什么会报错呢?
53_avatar_middle
在线会员 发表于 2016-1-13 00:37:27 | 显示全部楼层
本帖最后由 xieglt 于 2016-1-13 00:48 编辑

理论上是可以在线程里释放的,
代码也测试了一下,没有问题。
我估计是你的 .... 代表的那段代码里面有问题,破坏了栈,导致delete出错。

UINT __cdecl ThreadProc(LPVOID lpParameter)
{
        Book *tipMsg = (Book*)lpParameter;
        TRACE("entry value = %08X\n",(DWORD)tipMsg);
        ....

        TRACE("leave value = %08X\n",(DWORD)tipMsg);
      //delete tipMsg; //也会报错啊,可以编译的
        return 0;
}

如果两个trace 输出的值不一样,说明栈被破坏了。

评分

参与人数 1威望 +2 驿站币 +3 热心值 +3 收起 理由
81_avatar_small Debug + 2 + 3 + 3 很给力!

查看全部评分

02_avatar_middle
在线会员 发表于 2016-1-13 06:54:25 | 显示全部楼层
应该在析构函数中释放吧。
56_avatar_middle
ico_lz  楼主| 发表于 2016-1-13 14:24:54 | 显示全部楼层
谢谢各位,今天运行又OK了,难道重启电脑的问题
在线程函数中 delete 是正确的!


74_avatar_middle
在线会员 发表于 2016-1-13 14:25:11 | 显示全部楼层
看不出有何問題
不過 如果 你使用 boost的 線程 加上 智能指針 就永遠不會再遇見 釋放內存/任何需要釋放的資源 問題了
26_avatar_middle
在线会员 发表于 2016-1-13 16:47:39 | 显示全部楼层
zuiwuchang 发表于 2016-1-13 14:25
看不出有何問題
不過 如果 你使用 boost的 線程 加上 智能指針 就永遠不會再遇見 釋放內存/任何需要釋放的 ...

跨线程了 智能指针也能管吗?
74_avatar_middle
在线会员 发表于 2016-1-13 17:25:24 | 显示全部楼层
snsset 发表于 2016-1-13 16:47
跨线程了 智能指针也能管吗?

當然能   
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-5-20 09:43

Powered by Discuz! X3.4

© 2009-2019 cctry.com

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