如果从一个文件中读取数据来动态的生成一维 二维 或更高维的 数组,数组大小维数自然根据源数据文件而定.比如 从文件得知应该构造一个 m行 n列 的double 型数组.但我们事先不知道这个m 和 n 的值, 
而  new double[R][C] //这里的参数R ,C 要求是一个constant;那么这样如何动态的定义,生成这个数组呢?

解决方案 »

  1.   

    c++不支持这样的动态数组,要不你用链表吧,或者stl的vector很不错的
      

  2.   

    我不知道你想要干吗,你看看stl提供的一些容器有没有适合你的,如果实在不行,那就干脆只好定义一个最大数组了比如#define MAX_ARRAY 255在你的
    new double[MAX_ARRAY][MAX_ARRAY] 
    当然255是根据你的需要可以定义的更大
      

  3.   

    new double[R][C] //这里的参数R 可以为变量,C 要求常数
      

  4.   

    double* p = new double [r*c] 
    想访问  array[1][2]单元 
    就是 p [1*c+2]
      

  5.   

    明白了 无论是数组的维数为几, 都当作一维的处理, 
    然后借组别的变量m 和 n来 表达它是几行几列;
    所以 在参数传递是 :把一个二维数组作参数,函数定义为 func(double* matrix, int row, int column)  mainfunc()
     {
      double a[5][4];
      ...
      func(a,5,4);
      ...  }
      

  6.   

    用mmm1122的办法吧,这是比较通用的,实际上也很直观。