int** function()
{
int M[2][2] = {{1,2},{3,4}};
return (int **)M; //is this valid?
}
void anotherFn()
{
int **p = new int*[2];
for(int i = 0; i<2; i++) {
p[i] = new int[2];
}
p = function();
cout << p[0][0];
}
上記のコードはコンパイルされましたが、実行時エラーが発生しました。では、2D 配列が double ポインターとして宣言されている場合にのみ 2D 配列を返すことはできますか、それとも配列を 2D ポインターとして返す方法はありますか?