我debug程序,运行顺利,但是关闭的时候总是出现C:\Documents and Settings\hyj\桌面\Texturedll\GrayShow.cpp(289) : {196585} normal block at 0x0852A5F0, 16 bytes long.
,而且很就没有结束,请教各位高手了

解决方案 »

  1.   

    release 与debug可以一起用吗
      

  2.   

    F5 go一下,退出应该会有出错的提示吧!!再debug一下~~~~也觉得有点象Memory Leak
      

  3.   

    我上面根据提示的行数,找到如下代码
    BYTE **NewImage;
    NewImage = new BYTE*[LocalImageWidth]; int i,j;
    for(i=0; i<LocalImageWidth; i++)
    NewImage[i] = new BYTE[LocalImageWidth];
    这些局部二级指针的初始化,但是我在函数的结尾加了delete NewImage;好像还不行
      

  4.   

    如果是这样申请的:
    BYTE **NewImage;
    NewImage = new BYTE*[LocalImageWidth]; int i,j;
    for(i=0; i<LocalImageWidth; i++)
    NewImage[i] = new BYTE[LocalImageWidth];那么要这样释放:
    for(i=0; i<LocalImageWidth; i++)
    delet []NewImage[i];
             delete []NewImage;
      

  5.   

    Zark(金陵五月) 说的有道理!学习学习!
      

  6.   

    我是这样释放的不知道行否
    for(i=0; i<LocalImageWidth; i++)
    {
    delete NewImage[i];
    NewImage[i] = NULL;
    }
    delete NewImage;
    NewImage = NULL;
    不知道这样行不行
      

  7.   

    还有,我的程序出现这样一个对话框告诉我
    Debug Assertion Failed!Program:E:\....路径
    File:dbgheap.c
    Line:1017Expression:_BLOCK_TYPE_IS_VALID(pHead->nBlockUse).....
    我按下Retry时,回到vc,出现了汇编语言,请问这个是怎么回事?
      

  8.   

    对于BYTE这类内部类型(build-in data type),你这样是可以容忍的,但如果对于用户定义类型来说,则是错误.出现这个对话框说明你在堆上的内存存在越界现象.