数字图像处理  
去灰度值按大小排列时,出现IP.exe 中的 0x00f16597 处有未经处理的异常: 0xC0000005: 读取位置 0xcccccccc 时发生访问冲突

解决方案 »

  1.   

    下面是部分代码
    CDialog::OnInitDialog();
    // 循环变量
    LONG i;
    LONG j;
    LONG k;

    // 中间变量
    double dT;

    // 字符串变量
    CString str2View;

    // 控件ListCtrl的ITEM
    LV_ITEM lvItem;

    // 保存控件ListCtrl中添加的ITEM编号
    int nItem2View; // 保存计算中间结果的数组
    double * dTemp;

    // 数组用来存放灰度值和其位置之间的映射
    int * n4Turn;

    // 初始化变量
    m_dEntropy = 0.0;
    m_dCodLength = 0.0;

    // 分配内存
    m_strCode = new CString[nColorNum];
    n4Turn  = new int[nColorNum];
    dTemp = new double[nColorNum];

    // 令dTemp赋值
    // 开始的灰度值按灰度值大小排列相同
    for (i = 0; i < nColorNum; i ++)
    {
    dTemp[i] = dProba[i];
    n4Turn[i] = i;
    }
    当运行到dTemp[i] = dProba[i];就卡主了
      

  2.   

    dProba有定义  是在其头文件定义double *  dProba
      

  3.   

    应该有一句:
    dProba = new double[nColorNum];