MIPSベースの組み込みデバイスではなく、C++でアプリケーションをビルドしようとしています。まず、hereが見えるリンクの問題がありました。この問題は修正され、アプリケーションを正常に構築できます。今、私はstd::vector
クラスを使いたいです。私のコードは次のとおりです。ベクトルを使用することによりセグメントエラーが発生しました
#include <vector>
using namespace std;
int main() {
vector<char> v;
v.push_back('s');
return 0;
}
vector<char> v;
ラインを実行すると、Segment Fault
メッセージが画面に表示されます。より多くのテストのために、私はnew
オペレータをテストし、うまく動作します。私はアプリケーションを構築するためにmipsel-elf-g++
を使用しています。
どうしたのですか?
以前の質問から、C++コンパイラかなり壊れています。 'malloc'と' new'が最初に使用された場合、 'std :: vector'とは思えません。 http://stackoverflow.com/questions/8956979/segment-fault-caused-by-using-new-and-malloc – NPE
コードは問題ないようです。もしそれがsegfaultsならば、あなたの周りの仕事が 'vector'を宣言している間にあるスペースを割り当てることができます。 'ベクトル v(100);'と試してみてください。 –
iammilind
@aix: 'malloc'と' new'の問題は修正されました。私の質問では、「新しい演算子をテストしたが、メモリ割り当て問題があることを強調するためにうまくいきます」と言います。 –