正在做毕业设计,用VC编写一个程序,包括界面和算法两大块。
书到用时方恨少,每走一步都很困难,希望得到大家的帮助。
谢谢大哥大姐
问题1:在如下的成员函数中,定义了一个动态二维数组,
void CDijkstraView::GraphDraw(CDC *pDC)
{
    
int   TotelPointNumber;
         fstream  tzbFile;
tzbFile.open("E:\\0949.tzb",ios::in);
         tzbFile>>TotelPointNumber;
int **point=new int *[TotelPointNumber];    //
for(i=0;i<TotelPointNumber;i++)             //产生一个动态数组,
        {                                           //point[][0]表示横坐标,
             point[i]=new int[2];                   //point[][1]表示纵坐标
        }                                           // 

}
目标是,让这个动态数组在这个类的其他函数中也可以直接使用,并且数值能够相互传递。
我的想法是,把这个变量TotelPointNumber,和动态数组point[][],设成类里的公有数据。
问题:1、思路是否正确?
2、把变量TotelPointNumber设成类里的公有数据,会。但把动态数组point[][]设成类里的公有数据就不会了?

解决方案 »

  1.   

    二维数组的声明和分配空间有什么区别?
    ————————————————————————————————
    int **point=new int *[TotelPointNumber];    
    这一句是声明那还是分配空间?
    是声明的话,感觉多了些。
    是分配空间的话,感觉少了些
    ————————————————————————————————
    QQ52363686望联系
      

  2.   

    int **point=new int *[TotelPointNumber];  在vc程序里,如果是要在其他函数中可以调用的话最好将其声明写在头文件里,即int **point;但使用时需要注意先分配空间在使用。我一般用的时候喜欢在构造函数里加上point=NULL;使用时point=new int *[TotelPointNumber];    
      

  3.   

    这就是一个指针数组啊!
    定义在头文件里面,用的时候分配空间,
    如果要实现动态的话,在用的时候再另开辟一个临时空间,操作完以后把旧的释放了,再指向新的空间就是了
    记得在析构里面把它delete了!