【发布时间】:2011-02-11 22:28:09
【问题描述】:
当我在调试器中运行时,以下内容不起作用并给了我一个 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”。
【问题讨论】:
-
你试过设置s4为null来分配空间吗?
-
这就是全部代码吗?问题似乎没有在这里发生,这部分看起来还可以。此外,您不需要初始化
s4。