他の質問では、107776エントリの辞書を持つベクトルが必要で、コンパイルできなかったため、大量のデータを含むベクトルをコンパイルする方法を尋ねました。
私はこの答えのコードのおかげでそれを解決しました:
char const * const dict[] = {"aaron",...};
しかし、今問題は、1つのエントリにアクセスしようとすると...
cout<<dict[431104]<<endl;
...プログラムがフリーズし、Windowsがプログラムを閉じようとしています。
なぜそれが起こるのですか?どうすれば解決できますか?
編集:申し訳ありませんが、それは私のせいでした。tbrobergとSethCarnegieがこの回答sizeof(dict)
で気づいたように、間違いは、それが(ではなく)配列の長さであると思ったということでしたsizeof(dict)/sizeof(*dict)
。したがって、431104は配列の境界をはるかに超えていました(長さは107776です)。