++++++++立即结帖:关于内存泄露的4个基础问题++++++++

时间:2022-03-11 04:29:45
1、下面这个会有内存泄露吗?
double *dSum = new double[nLength];
for(int i=0;i<nLength;i++)
{
    ....//赋值计算
}
delete []dSum;

2、现在我的程序中只有这么个地方new了一下,Ondraw里的GDI绘图部分也都注释掉了,可是依然有内存泄露,从任务管理器里都能明显看出每次增加4k左右——很可观的泄漏哈。

3、一般除了动态分配和绘图过程中可能出现内存和资源泄露外,还有什么情况会引起泄漏呢?

4、除了BoundsChecker外,还有什么好方法或者好工具可以检测出内存泄露之处呢?我现在用BoundsChecker,但....怎么还是有泄露呢?或者,我太笨,不会用萨。大家指点指点哈。

9 个解决方案

#1


在做什么操作后,会增长4k?

#2


1、下面这个会有内存泄露吗?
double *dSum = new double[nLength];
for(int i=0;i<nLength;i++)
{
    ....//赋值计算
}
delete []dSum;
=====如果循环中没有改变dSum指针值的话,不会泄漏。

#3


for(int i=0;i<nLength;i++)
{
    ....//赋值计算
}
--------------------
你没在里面修改dSum的值吧?

#4


1.应该不会。


钭代码帖出来,或是发到readytogo@163.com,注意URL.

#5


你在任务管理器中,同时看一下GDI对象,USER对象,句柄,看有没胡泄漏的迹象?

#6


有没有使用自动内存管理这样的数据结构

#7


呵呵,好。第一个问题已经有答案。就是那个dSum惹的祸了。
谢谢大家。下面的三个哪

#8


2、现在我的程序中只有这么个地方new了一下,Ondraw里的GDI绘图部分也都注释掉了,可是依然有内存泄露,从任务管理器里都能明显看出每次增加4k左右——很可观的泄漏哈。
如果代码没问题的华,一般是界面更新的时候产生的,等一段时间会自动释放,可以放一晚上看看

3、一般除了动态分配和绘图过程中可能出现内存和资源泄露外,还有什么情况会引起泄漏呢?
还有很多,如LoadLibrary InsertMenu等,具体看代码

4、除了BoundsChecker外,还有什么好方法或者好工具可以检测出内存泄露之处呢?我现在用BoundsChecker,但....怎么还是有泄露呢?或者,我太笨,不会用萨。大家指点指点哈。
SmartCheck DevPartner 等,BC菜单下选择Integrated BC,F5执行就会有东西可看,还有一种是Build with BC,可以在编译的时候加入BC代码,这部分具体没用过

#9


问题已基本解决,兑现立即结帖。
谢谢各位老大的提示了。

#1


在做什么操作后,会增长4k?

#2


1、下面这个会有内存泄露吗?
double *dSum = new double[nLength];
for(int i=0;i<nLength;i++)
{
    ....//赋值计算
}
delete []dSum;
=====如果循环中没有改变dSum指针值的话,不会泄漏。

#3


for(int i=0;i<nLength;i++)
{
    ....//赋值计算
}
--------------------
你没在里面修改dSum的值吧?

#4


1.应该不会。


钭代码帖出来,或是发到readytogo@163.com,注意URL.

#5


你在任务管理器中,同时看一下GDI对象,USER对象,句柄,看有没胡泄漏的迹象?

#6


有没有使用自动内存管理这样的数据结构

#7


呵呵,好。第一个问题已经有答案。就是那个dSum惹的祸了。
谢谢大家。下面的三个哪

#8


2、现在我的程序中只有这么个地方new了一下,Ondraw里的GDI绘图部分也都注释掉了,可是依然有内存泄露,从任务管理器里都能明显看出每次增加4k左右——很可观的泄漏哈。
如果代码没问题的华,一般是界面更新的时候产生的,等一段时间会自动释放,可以放一晚上看看

3、一般除了动态分配和绘图过程中可能出现内存和资源泄露外,还有什么情况会引起泄漏呢?
还有很多,如LoadLibrary InsertMenu等,具体看代码

4、除了BoundsChecker外,还有什么好方法或者好工具可以检测出内存泄露之处呢?我现在用BoundsChecker,但....怎么还是有泄露呢?或者,我太笨,不会用萨。大家指点指点哈。
SmartCheck DevPartner 等,BC菜单下选择Integrated BC,F5执行就会有东西可看,还有一种是Build with BC,可以在编译的时候加入BC代码,这部分具体没用过

#9


问题已基本解决,兑现立即结帖。
谢谢各位老大的提示了。