Win32下,怎样实现数组nEdgeTabel[m_nLabel][50][2]最简单?感觉挺困难的,哪位大虾帮帮忙阿

解决方案 »

  1.   

    多维数组,多重循环来new,释放也要多层delete.或者减少维数,只用一维,访问的时候记住i,j,k在对应一维中的位置n
      

  2.   

    int **p = new int*[xxx];
    for ( int i = 0; i < xxx; i++ ) p[i] = new int[yyy];
      

  3.   

    循环new,我觉得有点不好看,特别是最后一维还是[2],一共三维,另外释放也要循环释放马?
    我想用结构体,可行吗?结构体里面用int* pnData;使用的时候可以再动态分配大小吗?
      

  4.   

    int ***nEdgeTabel = new INT**[m_nLabel];
    for(int i = 0;i < m_nLabel;i++)
    {
    nEdgeTabel[i] = new INT*[50];
    for(int j = 0;j < 50;j++)
    {
    nEdgeTabel[i][j] = new INT[2];
    nEdgeTabel[i][j][0] = 0;
    nEdgeTabel[i][j][1] = 0;
    }
    }、、、、、、、、、、、、
    for(int i = 0;i < m_nLabel;i++)
         for(int j = 0;j < 50;j++)
    SAFE_DEL_ARRAY(nEdgeTabel[i][j]);
    这样写有问题吗?
      

  5.   

    这样啊,我看能不能改成别的方法
    CArray是MFC的吧,我用的win32,vector 是可以,但是都不能解决多维的问题吧?