私はプログラミングが初めてで、2次元配列を理解しようとしています。私はこのコードを書いて、コードが動作しているかどうかをテストするだけです。残念ながら、私はセグメンテーションエラーを取得しています。私はそれが私が書いた何かがコンパイラのために読めないことを意味することを知っているが、私はそれが何であるか分からない。すべてが私にとってうまく思えるからです。セグメンテーションフォールト2次元配列
#include<iostream>
using namespace std;
int main(){
int col, row,i;
int **array;
cout << "How many rows?\n";
cin >> row;
cout << "How many colomns\n";
cin >> col;
cout << "!!!!!!!!!!!!";
array = new int*[row];
for (int i = 0;i<row;i++){
array[i] = new int[col];
}
cout << "!!!!!!!!!!!!";
for(i=0; i<row; i++){
int x=1;
array[0][i]= x;;
x++;
}
cout << "!!!!!!!!!!!!";
cout << array[row][col];
for(i=0; i<row; i++){
delete [] array[i];
delete [] array;
}
return 0;
}
ERRORは次のとおりです。 " どのように多くの行セグメンテーションフォールト(コアダンプ) どのように多くのcolomns ?"
'COUT <<配列[行] [COL]のようにループ 外
x
を初期化し;'範囲外です。 'array [row-1] [col-1]'はあなたが行ける深さです。 – WhozCraigx ++;何もしていない。 xは各ループ反復の終わりに範囲外になり、次の反復の開始時に再作成されます。 – mjwach
最近、ポインタや配列、newやdeeteはC++では使われていません。 std :: vectorやstd :: shared_ptrのようなより健康的な選択肢があります。 –