- プラットフォーム: x86 Linux 3.2.0 (Debian 7.1)
- コンパイラ: GCC 4.7.2 (Debian 4.7.2-5)
「ランダムな」値に割り当てられたメモリの部分を読み取ることにより、「ランダムな」整数を生成する関数を作成しています。この考え方は、初期化されていない変数には未定義の値があるという事実に基づいています。私の最初のアイデアは、malloc() を使用して配列を割り当て、その初期化されていない要素を使用して乱数を生成することでした。ただし、malloc() はメモリの NULL ブロックを返す傾向があるため、読み取るものがあることを保証できません。そこで、NULL 以外の値をほぼ保証するために、別のプロセス メモリを読み取ることを考えました。私の現在のアイデアは、最初の有効なメモリアドレスを見つけてそこから読み取ることですが、これを行う方法がわかりません。ポインタを NULL に初期化してから 1 ずつインクリメントしようとしましたが、参照されたメモリ位置を出力しようとすると、セグメンテーション フォールトが発生します。したがって、私の質問は、別のプロセスメモリをどのように読み取るかです。メモリを読み取る以外に何もする必要はありません。