C ++调试 - 从文件中读取并输出2D数组

时间:2014-02-25 21:28:28

标签: c++

#include<iostream>
#include<fstream>
using namespace std;


int main(){
      ifstream infile;
      int X,Y;
      char ch;
      infile.open("input.txt");
      int** intarray = new int*[X];
      for(int i = 0; i < X; ++i)
       intarray[i] = new int[Y];
           for(int k=0; k<16; ++k){
             for(int j=0; j<24; ++j){
              infile >> intarray[k][j];
              cout << intarray[k][j]<<" ";
             }
           cout<< endl;
           }

           infile.get(ch);

  infile.close();

}

这是我到目前为止所写的内容,数组是动态声明的,但是当我运行时,会出现错误,说出Segmentation fault(core dumped)。 对于输入文件,第一行是4个数字:#rows #columns min-value max-value,我需要将它们打印出来并将整数放入从第二行开始的2-d数组中。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

通常,您会从一个特定大小的预定数组开始,然后在插入更多元素时增加容量。这意味着当一个元素挂起插入数组但数组被填充到其预设容量时,您将分配一个新的更大的内存块,将元素从原始数组复制到新数组,再加上新元素{{ 1}}原始数组并将其分配给新数组。

然而,这需要内存管理,这在C ++中通常不是一个好习惯。原因是存在像delete[]这样的改进,它是动态数组的包装器,基本上就是上面描述的那个。但是因为你是一个初学者,我会说首先开发使用低级别东西的知识,然后继续努力。