#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数组中。我怎么能这样做?
答案 0 :(得分:0)
通常,您会从一个特定大小的预定数组开始,然后在插入更多元素时增加容量。这意味着当一个元素挂起插入数组但数组被填充到其预设容量时,您将分配一个新的更大的内存块,将元素从原始数组复制到新数组,再加上新元素{{ 1}}原始数组并将其分配给新数组。
然而,这需要内存管理,这在C ++中通常不是一个好习惯。原因是存在像delete[]
这样的改进,它是动态数组的包装器,基本上就是上面描述的那个。但是因为你是一个初学者,我会说首先开发使用低级别东西的知识,然后继续努力。