当前位置: 代码迷 >> VC/MFC >> 小白MFC创建UI线程
  详细解决方案

小白MFC创建UI线程

热度:133   发布时间:2016-05-02 03:37:02.0
小白求教:MFC创建UI线程
本帖最后由 a18711839961 于 2015-10-09 17:25:14 编辑
我在主对话框上创建了两个按钮,一个按钮点击创建一个UI线程,另一个按钮点击结束UI线程,多次反复操作,退出的时候看到如下情况


为什么前面四个线程地址会不一样,我都是结束线程之后,再点击按钮重新创建的,内存都释放了,最后一个应该是主对话框线程
------解决思路----------------------
这个没什么问题吧
------解决思路----------------------
无泄漏就可以了,内存分配 是内核管理的
------解决思路----------------------
这两次输出的地址是一样的啊,为什么线程我做类似的操作,先创建线程然后然后删除,地址却不一样,这是为什么
------------------------------------------------
这个是正常的,动态分配内存又操作系统内部进行管理,很复杂!分配的地址可能一样,也可能不一样

int *p = new int;
cout<<p;
delete p;
p = NULL;
p = new int;
cout<<p;
比如你这个,第一次delete之后内存被系统回收,紧接着又开始new一个同类型同大小的int,操作系统根据内部的算法发现正好上次分配的那个int内存块符合现在的分配需求,就把这个内存块分配给你了,如果你第二次这样写char *pszBuff = new char[1024],那么首地址估计就跟上次不一样了,但也有可能是一样的哦,这主要取决于当前操作系统中内的使用和空闲内存分配情况

下去你自己去接触一下内存池,说不定更有利于你去理解这个问题
  相关解决方案