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

C++ debugs - read from a file and output the 2D array

本文关键字:输出 2D 数组 读取 调试 文件 C++      更新时间:2023-10-16
#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();
}

这是我到目前为止写的,数组是动态声明的,但是当我运行时,它出现错误,说分段错误(核心转储)。对于输入文件,第一行是 4 个数字:#rows #columns 最小值最大值,我需要将它们打印出来并将整数放入从第二行开始的二维数组中。我该怎么做?

通常,您会从一定大小的预分配数组开始,然后随着插入更多元素而增加容量。这意味着当元素等待插入到数组中但数组已填充到其预设容量时,您可以分配一个新的、更大的内存块,将元素从原始数组复制到新数组,加上新元素,delete[]原始数组并将其分配给新数组。

但是,这

需要内存管理,这通常不是C++的好做法。原因是有一些改进,例如std::vector,它是围绕动态数组的包装器,本质上是上面描述的那个。但是因为你是一个初学者,我会说先发展使用低级东西的知识,然后逐步提高。