获取list <string>的第一个和最后一个元素给我ILLEGAL INSTRUCTION错误</string>

时间:2012-11-30 09:01:43

标签: c++ list stl

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

此时我正在获得progeam在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;
}

当程序出现此错误时,我可以看到值 先是 Log.001 最后 Log.003

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:0)

我得到了解决方案。很抱歉,但是GDB在错误的行上显示SIGILL错误。 我收到错误是因为我们有一个使用格式化输入的日志记录机制,如fprintf。但我给%s string提出了这个问题。非常感谢你的耐心

first.c_str()last.c_str()解决了它。