OnDraw()中调用下面的语句,
CString ss("I am Hibernia!");
或调用pDC->TextOut(20,200, "I am Hibernia!");我发现每次RESIZE窗口,
内存分配持续增长
为什么没有及时回收内存
我有什么方法可以回收内存?OnDraw()中调用下面的语句,内存分配不会持续增长
char *ss="I am Hibernia!";

解决方案 »

  1.   

    CString总是少量的分配和释放内存,这会造成内存碎片
    解决的方法是不动态分配内存,或者使用托管代码
      

  2.   

    Managed Code
    去找找关于垃圾收集的文章把
      

  3.   

    托管代码是.NET中的名词.里面的所有类型均从Object类派生(包括int),使用内存时只需申请不必释放,由垃圾收集器自动完成释放.普通C++代码视为非托管代码,和托管代码相互调用时有一大套的规则.
    明确将字符串声明为常量,情况就要好得多.字符串不应该引起大量的内存损耗的,可能是你的操作方法不对,比如用了GetBuffer却没有ReleaseBuffer,或GDI对象没释放.