什么情况会引起内存泄漏?解决方案

什么情况会引起内存泄漏?
如题,在VC中什么情况会引起内存泄漏?下列情况会引起内存泄漏吗?
1、比如在函数体内使用结构体?系统会自动回收吗?
2、在定义函数成员是定义的引用,用完后会自动回收吗?

------解决方案--------------------
内存泄漏指在堆上分配内存后,没有释放。
1、怎样使用结构体的?堆还是栈?
2、不会
------解决方案--------------------
1.使用结构体本身并不会产生内存泄漏``但如果你的结构体是new出来的,在程序结束后也没delete``那就泄了``嘿`
2.这个看不懂你的意思``不过定义引用应该不会出现内存泄漏``想象不到什么情况会泄``不过有可能是会造成内存访问错误倒是有可能``

内存泄漏就是说`你在堆里分配了(new)内存``没有释放(delete)``不过一般人很少犯这种错误``除极少数天才``像我这样``哈哈``多数情况是因为不了解某些类的实现机制啊``比如com里面的BSTR``你从某个函数拿到一个BSTR,你就需要释放``但是通常情况下是因为不知道要释放``所以泄了```
------解决方案--------------------
在堆上申请的内存资源使用了没有释放就会内存泄漏了
------解决方案--------------------
是公司产品吗?程序大吗?方便的话发给我`帮你调`
------解决方案--------------------
new 完之后 一定要用delete
------解决方案--------------------
有可能异常造成

try
{
classA pA = new classA;
int b= 5/0; //在此异常
delete pA;
}
catch(...)
{
//在这没有释放
}
------解决方案--------------------
一般也就是分配不释放,
再来就是除0错了.
或者超出其定义的值?
------解决方案--------------------
疯长,应该是你在循环new,最后只delete 一次造成的吧...
想让我们找原因,贴代码出来...
------解决方案--------------------
把你new出来的东西 都看看有没有delete

有些BSTR的 就算在函数体内定义的 也要记得释放

建议你还是分段 1个个调试吧
------解决方案--------------------
对一个void*类型的指针进行delete操作,有可能造成内存泄漏,它不执行析构函数