0

私は c++11 ランダム ライブラリを試していて、奇妙な問題に遭遇しました。私のコードは正常にコンパイルされ、Eclipse 内で実行されますが、シェル (この場合は Linux で bash) で実行可能ファイルを実行しようとするとすぐに、コア ダンプが発生します。Eclipse に特別な環境変数があるかどうかを確認しましたが、そうではないようです。

私の謙虚なコード:

std::mt19937 eng(time(NULL));
std::uniform_int_distribution<int> uniformEnergy(0,E.size()-1);
std::uniform_real_distribution<double> uniformProb(0,0.1);
for (int i = 0; i < 10; i++) {
    int E_r = uniformEnergy(eng);
    float p_r = uniformProb(eng);
    ...

そして、random.h 内に一見無限に見える (4000 後にあきらめた) スタックを持つセグ フォールト:

#0  0x0000000000403af4 in std::uniform_int_distribution<int>::param_type::b (
this=<error reading variable: Cannot access memory at address 0x7fffc1381ff8>) 
at /usr/include/c++/4.6/bits/random.h:1636 
1636        b() const

私の端末では何が間違っているのに、Eclipse ではうまく動作するのでしょうか?

編集: 私は自分でコードをコンパイルしようとしましたが、正常に動作し、何らかの理由でEclipseによって作成された実行可能ファイルが悪いと思いました. 何か案は? 編集 2もちろん、これは私の側の愚かなエラーです。E.size() は、実行中のディレクトリによって異なり、(おそらく) ゼロになりました。

顔やし..

4

0 に答える 0