我想创建一个二维数组,其大小只在运行时已知。试图创建一个二维数组,其大小只有在运行时已知c +
我试着做以下几点:
std::ifstream myFile;
myFile.open("input.txt",std::ios::in);
int num_cols;
myFile >> num_cols;
int num_rows = 10;
int *HArray;
HArray = (int*) malloc(sizeof(int)*num_cols*num_rows);
但当我尝试这个办法:
for (int i = 0; i < num_rows; i++) {
for(int j = 0; j < num_cols; j++) {
HArray[i][j] = i*j + 34*j;
}
}
我在编译过程中出现以下错误:
错误2错误C2109:下标需要数组或指针类型
如何分配的内存HArray使得我可以使用指数为[i] [j]来访问和将值分配给该数组?
我试过了@Uri的答案可用here,但是程序立即崩溃了,我也不是很了解发生了什么事情。
编辑:
我决定使用以下
std::vector<std::vector<int>> HArray(num_rows, std::vector<int>(num_cols));
I *高度开始*建议你阅读一本好的C++书。通过试验和错误学习C++或从网络中随机选择的片段将结束不佳,相信我。 –
你知道行数吗? –
@BaummitAugen,但它不是随机片段,它是一个很好的stackoverflow答案... –