在同一个循环里居然有的是乱码
有的不是.
struct mychar
{
   char cc[5];
};
mychar szBuf[50][50];
LPCTSTR TEXT;
int          *Map;
Map=(int *)malloc(63*sizeof(int));
memset(Map,0,63*sizeof(int));
int a[63]={
  1,1,1,1,1,1,1,1,1,
  1,0,0,0,0,0,0,0,1,
  1,0,0,0,1,0,0,0,1,
  1,0,0,0,1,0,0,0,1,
  1,0,0,0,1,0,0,0,1,
  1,0,0,0,0,0,0,0,1,
  1,1,1,1,1,1,1,1,1
  };
for(int i=0;i<63;i++)
    Map[i]=a[i];
for( int x=0; x < m_Width; x++ )
    for( int y=0; y< m_Height; y++ )
      {
sprintf(szBuf[x][y].cc, "%d", *(Value + x + y*m_Width));
TEXT = LPCTSTR( szBuf[x][y].cc );
         MessageBox(NULL,TEXT,"MSG",MB_OK);
      }我晕...
出来的居然有的是乱码有的不是..
乱码的头一位都是数字的..跟着乱码.
而且有个共性,在a数组越又边的乱码越长.
求救
在线等候。。

解决方案 »

  1.   

    for( int x=0; x < m_Width; x++ )
        for( int y=0; y< m_Height; y++ )
          {
    memset(szBuf[x][y].cc,0,5);//得加上这行
    sprintf(szBuf[x][y].cc, "%d", *(Value + x + y*m_Width));
    TEXT = LPCTSTR( szBuf[x][y].cc );
             MessageBox(NULL,TEXT,"MSG",MB_OK);
          }
      

  2.   

    同意:
    for( int x=0; x < m_Width; x++ )
        for( int y=0; y< m_Height; y++ )
          {
    memset(szBuf[x][y].cc,0,5);//得加上这行
    sprintf(szBuf[x][y].cc, "%d", *(Value + x + y*m_Width));
    TEXT = LPCTSTR( szBuf[x][y].cc );
             MessageBox(NULL,TEXT,"MSG",MB_OK);
          }
      

  3.   

    也可以这样定义:
    struct mychar
    {
       char cc[5];
       mychar()
       {
          for(int i = 0; i < 5; ++i)
             cc[i] = 0;
       }
    };
      

  4.   

    szBuf[x][y].cc // 这个得先初始化为0值
      

  5.   

    将内存清零有以下两个函数可用,建议以后再使用一个字符数组或结构体等都将内存清零!
    memset(szBuf[x][y].cc,0,sizeof(szBuf[x][y]));
    ZeroMemory(szBuf[x][y],sizeof(szBuf[x][y]));