私はこのエラーに完全に当惑しています。あなたが私を助けてくれることを願っています! 構造のベクトルを持つクラスがあります (構造は粒子と呼ばれます)。構造体の特定のフィールドのベクトルを返すゲッターを書いているだけです。x というフィールドに対して 1 回、次に v というフィールドに対して :
vector<double> x = s.getx();
vector<double> v = s.getv();
何らかの理由で、getx は機能しますが、getv は機能しません。「malloc(): メモリ破損:」というメッセージが表示されます。
クラス getx と getv は次のとおりです。
vector<double> getx() {
vector<double> ret(number-2);
for(int i = 1; i < number; i++) {
ret[i-1] = masses[i].x;
}
return ret;
}
vector<double> getv() {
vector<double> ret(number-2);
for(int i = 1; i < number; i++) {
ret[i-1] = masses[i].v;
}
return ret;
}
エラーは次の行で発生します。
vector<double> ret(number-2);
getvで。
私が混乱している理由は、これらの方法が本質的に同じだからです! (number-2) を 4 などの定数に置き換えると、同じエラーが発生します。単にメモリを割り当てることができません!
私が間違ったことをしたことをあなたが見てくれることを願っています...
どうもありがとうございました。