1.new,malloc后没有delete,free
2.创建内核对象(比如CreateFile,CreateMutex,CreateThread),后没有释放内核对象句柄.
3.创建内存映射文件,CreateFileMapping,MapViewOfFile后没有CloseHandle(),UnMapviewofFile
4.创建GDI对象后,比如LoadIcon,LoadImage,CreateImageList等等,没有Destroy掉
5.创建DC后,比如GetDC(), 没有释放DC句柄
6.保留虚拟地址空间 VirtualAlloc(),然后提交物理存储器后,没有释放掉
注意:
1,当一个分配了内存的对象,把它的地址赋值给另一个对象时,并不会造成内存泄漏。如下面的情况:
A*a=new A;
A* b=a;
delete a;
只是单纯的把a的指针地址赋给了b而已,当delete a后,b也同样被释放掉了,因为它们是相同的一块内存,这个时候b也不能用了,要注意。