bool isLine(int map[][4]) {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
cout << map[i][j] << ' ' ;
}
cout<<endl;
}
if (map[3][0] * map[2][1]* map[1][2] * map[0][3] == 1) return 1;
//*
//*
//*执行到这行时报错,Signal: SIGSEGV (Segmentation fault)
//*
//*
if (map[0][0] * map[1][1] * map[2][2] * map[3][3] == 1) return 1;
for (int row = 0; row < 4; row++) {
if (map[row][0] *map[row][1]* map[row][2]* map[row][3] == 1) return 1;
}
for (int col = 0; col < 4; col++) {
if (map[0][col] * map[1][col]* map[2][col] * map[3][col]) return 1;
}
return 0;
}
如代码所示,求解
それは、呼び出しポイントで渡される特定のパラメータとその構築方法によって異なります。呼び出しコードも投稿する必要があります。
2 次元配列の場合、最初のパラメーターを指定する必要はありません。システムは、配列の初期化時に指定された合計サイズと 2 次元パラメーターに基づいて 1 次元パラメーターを取得できます。 segfault。パラメータ空間のサイズに問題があるため、1 次元パラメータが 3 に達しません。