基本的に私がやろうとしているのは、関数内で配列を初期化することですが、セグメンテーション違反になります:
void func(int **a, int x, int y) {
a = new int*[x];
for (int i=0; i<x; i++)
a[i] = new int[y];
}
void main() {
int **a;
func(a, 2, 3);
}
ただし、関数の外側で配列を初期化して渡すと、すべてが完全に機能し、値を割り当てたり出力したりできます。私が苦労しているのは、配列の参照を渡すことなので、関数の外で初期化する必要はありません。
void func(int **a, int x, int y) {
for (int i=0; i<x; i++)
a[i] = new int[y];
}
void main() {
int x = 2;
int **a = new int*[x];
func(a, x, 3);
}