以下不起作用,当我在调试器中运行时给我一个SIGABRT:
std::ifstream inFile;
inFile.open("/Users/fernandonewyork/inputText.txt");
cout << inFile << endl;
vector<string> inText;
if (inFile) {
string s4;
while (inFile>>s4) {
inText.push_back(s4);
}
}
inFile.close();
以下是:
std::ifstream inFile;
inFile.open("/Users/fernandonewyork/inputText.txt");
cout << inFile << endl;
vector<string> inText;
if (inFile) {
string s4("This is no lnger an empty string");
while (inFile>>s4) {
inText.push_back(s4);
}
}
inFile.close();
我的印象是我能够简单地使用s4而不必担心任何空间考虑因素,或者是否有其他事情发生在这里?这是我从顶部代码得到的完整错误:
malloc: *对象0x100010a20的错误:未分配被释放的指针 * 在malloc_error_break中设置断点以进行调试 程序收到信号:“SIGABRT”。
答案 0 :(得分:1)
解决方案:
集
_GLIBCXX_FULLY_DYNAMIC_STRING=1
在目标中的预处理器宏中 信息构建标签。
还有另一个设置窗口,其中包含预处理器宏字段(项目设置?),但设置此项将不起作用。
- 嗯,这个问题与这个问题有很大的不同,但具有讽刺意味的是,你的症状更常见。