これを実行するたびにメモリエラーが発生します。私も閉じていますか?C++関数から動的に割り当てられた2D配列を返す方法
int **createField(int N, int ** ary) {
ary = new int*[N];
for(int i = 0; i < N; ++i)
ary[i] = new int[N];
for(int i = 0; i < N; ++i)
for(int j = 0; j < N+1; ++j)
ary[i][j] = 0;
return ary;
}
int playGame (int N, int ** ary) {
cout<<"Enter the coordinates of the " << N << " shots:"<<endl;
for(int i = 0; i < N; i++)
{
for(int j = 0; j < N; j++)
{
cout<<"Enter element ["<<i<<"]["<<j<<"]: ";
cin>>ary[i][j];
}
}
return 0;
}
int main() {
int N;
cout << "Enter the number of Redshirts: ";
cin >> N;
int** ary;
createField(N, ary);
playGame(N, ary);
}
U、 'std :: vector'。 –
あなたはcoutを使用しています - つまり、あなたはC++を使用しています。 Cタグを見ている人々はあなたの一般的な方向にトマトを起動します – UKMonkey
この質問は週に少なくとも3回頼まれています。重複したリンクを読んでから、あなたのコードでCTRL + A/supprを使い、 'std :: vector>' –