我在MFC中 自定义了 类A
然后在主界面类的多个函数(fun1(), fun2(), ...)中 分别定义了多个对象指针 并申请了内存:
fun1()
{
A* a1;
a1 = new A();
}fun2()
{
A* a2;
a2 = new A();
}
......若要在 主界面类的 另一个函数中释放他们(a1, a2, ...) 该如何处理呢? Tip:
fun1() //申请并创建
{
CButton* btn;
btn = new CButton;
btn->Create(..., 1); // 1为其 ID 号
}
fun2() //释放内存
{
CButton* b = (CButton*)GetDlgItem(1);
delete b;
}
是否有类似的处理呢?
然后在主界面类的多个函数(fun1(), fun2(), ...)中 分别定义了多个对象指针 并申请了内存:
fun1()
{
A* a1;
a1 = new A();
}fun2()
{
A* a2;
a2 = new A();
}
......若要在 主界面类的 另一个函数中释放他们(a1, a2, ...) 该如何处理呢? Tip:
fun1() //申请并创建
{
CButton* btn;
btn = new CButton;
btn->Create(..., 1); // 1为其 ID 号
}
fun2() //释放内存
{
CButton* b = (CButton*)GetDlgItem(1);
delete b;
}
是否有类似的处理呢?
解决方案 »
- VC保存PLT格式的图
- 强烈感谢能帮我解决VC预处理编码问题
- 有关Media Player控件的问题,急急急急!!!
- 怪现象,请朋友帮忙
- 怎样用OpenGL显示一个由一百万个点所组成的模型?
- 求解
- 如何在一个透明的Edit控件中显示文字?
- 各位大侠帮忙啊,关于 CListCtrl 中 CHeaderCtrl 的问题!!
- 高手作答,新手来顶!GetFontUnicodeRanges得到的字符的索引问题
- 我想编一个输入法,就像微软拼音输入法、智能ABC一样,不知我该如何下手,当然输入方法已经有人提供。
- numeric_limits<long double>::min() (如何求一个类型的表示范围)
- 双击程序使隐藏的窗口再次显示出来?
{
return new a;
}
fun2()
{
return new b;
}
funmain()
{
c = fun1();
d = fun2();
delete c;
delete d;
}
delete b;
这样处理应该是不行的 没有b指向的不是堆内存
赋初值NULL
到不用的时候判断指针是否为NULL
不是则delete;
你说的似乎很有道理, 能否具体一点啊?
谢谢!谢谢各位
当有内存申请时候,到该全局结构中注册一下, 遇到那种随机的释放的时候就到该表注销以下,
(注销过程也顺带释放了该对象或者指针的内存空间)等到 某个处理完结,或者是程序完结的或者是某个需要的释放时机,比如 某些类的析构的时候
就扫描一遍这个全局结构,将没有注销的注销。就能够做到,内存不会泄漏了。
其实正常的情况下,一般我们都能够保证内存都会得到释放的,但是如果碰到异常的情况,而内存释放的代码被短路,没有被执行就会有问题。这种情况常常会被忽略,(不是因为编程不小心,而是有时候情况确实太复杂了)上述的解决方式能够有效的弥补这个不足。
谢谢你的指点!能否 点一下这种 队列或hash 的大体组织结构
谢谢!