打印

程序运行问题

[复制链接]
997|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yybj|  楼主 | 2013-10-28 21:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求看这那错了,编译没错,但运行后显示内存不足什么的?
#include <stdio.h>
#include <iostream.h>
#include <iomanip.h>
#include <cstdlib>
#include <ctime>

void main()
{   
    int TempH=3;
    int TempW=3;
    int TempCX=1;
    int TempCY=1;
    int m_imgWidth=14;
    int m_imgHeight=14;
    int lineByte =14;
    int tempLen=TempW*TempH;
    int  m_pImgData[14][14];
    unsigned char* m_pImgDataOut,* pDst,* pSrc;
   float value,valuen;

    //申请缓冲区
    m_pImgDataOut=new unsigned char[lineByte*m_imgHeight];

    //生成随机的数组并显示
    srand((unsigned)time(NULL));

    for(int c=0;c<14;c++){
        for(int d=0;d<14;d++){
            m_pImgData[c][d]=rand()%255;
        }
    }

    for(int g=0;g<14;g++){
        for(int f=0;f<14;f++){
            cout<<setw(5)<<m_pImgData[g][f];
         
        }
        cout<<endl;
    }

    //进行3*3模板处理
    int i,j,k,l;
    //行处理(去掉边缘几行)
    for ( i = TempCY; i < m_imgHeight - TempH + TempCY + 1; i++)
    {
        //列处理(去掉边缘几列)
        for ( j = TempCX; j < m_imgWidth - TempW + TempCX + 1; j++)
        {
            
            //模板数组
            for (int k = 0; k < TempH; k++)
            {
                for (int l = 0; l < TempW; l++)
                {
                    value+=m_pImgData[i-TempCY+k][j-TempCX+l];
                }
            }
            
            valuen=value/9;

            //局部二值化
           for(int m=0;m<TempH;m++)
           {
               for(int n=0;n<TempW;n++)
               {
                   pDst=m_pImgDataOut + lineByte * (m_imgHeight - 1 - i+TempCY-m) + j-TempCX+n;
                   if(*pSrc<valuen)
                       *pDst=0;
                   else
                       *pDst=255;
               }
           }
        }
    }
}

相关帖子

沙发
火箭球迷| | 2013-10-28 21:24 | 只看该作者
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。

使用特权

评论回复
板凳
xsgy123| | 2013-10-28 21:37 | 只看该作者
pDst=m_pImgDataOut + lineByte * (m_imgHeight - 1 - i+TempCY-m) + j-TempCX+n;

确定没有越界?

使用特权

评论回复
地板
秋天落叶| | 2013-10-28 21:42 | 只看该作者
判断是否越界访问,可以在数组的最后一个元素之后对应的地址处设置数据读写断点。如果该地址对应其它变量干扰判断,可将数组多声明一个元素,并设置数据读写断点在该多出元素对应的地址上。

使用特权

评论回复
5
comeon201208| | 2013-11-10 20:45 | 只看该作者
将你的在main函数里面定义的局部变量的放到main函数的上边的,变成全局变量的试一下的吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

175

主题

2496

帖子

1

粉丝