0
list<string> logs;
GetLogs(logs);
string first=logs.front();
**string last=logs.back();**

この時点で、GDBでプログラムがSIGILLを取得しています

私のGetLogs()関数の定義は次のとおりです。

int GetLogs(list<string>& logs){
logs.push_back("Log.001");
logs.push_back("Log.002");
logs.push_back("Log.003");
return 0;
}

プログラムがこのエラーを受け取ったとき、値p最初のLog.001p最後のLog.003を見ることができます

私のコードの何が問題になっていますか?

4

1 に答える 1

0

私は解決策を得ました。申し訳ありませんが、GDB は間違った行に SIGILL エラーを表示していました。のようなフォーマットされた入力を使用するロギング メカニズムがあるため、エラーが発生していましたfprintf。しかし、私はそれ%sstringこの問題を引き起こしています。ご辛抱いただきありがとうございました

first.c_str()そしてlast.c_str()それを解決しました。

于 2012-11-30T09:25:39.023 に答える