動的計画法の問題を解決するのに役立つブール値の 2 次元テーブルを使用する必要があります。残念ながら、カウントされた結果を印刷したいという問題が発生しました。以前は c++ でコーディングしたことがあまりなかったので、このコードの何が問題なのかわかりません。特に、ここではカスタムメイドの構造体、クラス、またはポインターを使用しておらず、反復子の配列境界が正しいかどうかを再確認しました。
これが私の問題の例である簡単なコードです:
const short int N=1001;
const short int M=10001;
int main() {
bool tab[N][M];
for (int i=0;i<N;i++)
for (int j=0;j<M;j++)
tab[i][j]=false;
int foo=0;
for (int i=0;i<N;i++)
for (int j=0;j<M;j++)
if (!tab[i][j])
foo++;
cout << foo << endl;
return 0;
}
foo 値を印刷しようとするとセグメンテーション違反エラーが発生するのはなぜですか? その変数は、for 関数で値を大きくする前に初期化されます。cout 行を削除すると、すべて問題なく、プログラムは作業を終了します (ただし、結果は表示されません)。この(おそらく)単純な問題を解決するのを手伝ってくれてありがとう。