所以我在夏天写了一个 ArrayList 的实现,我有一个 toString 方法,在该方法中我使用一个 ostringstream 对象来附加字符串,然后输出它们。
方法如下:
template<class T>
std::string ArrayList<T>::toString() {
std::ostringstream streamOut;
streamOut << "(";
for (int i = 0; i < size; i++) {
streamOut << array[i];
if (i != (size - 1)) {
streamOut << ", ";
}
}
streamOut << ")\n";
std::string returnString = streamOut.str();
return returnString;
}
问题是当我运行这个程序时,它有时会在上述方法中崩溃:
streamOut << "(";
我尝试在最后添加一个flush语句,但这并没有成功……我真的不知道这里可能出了什么问题。
我认为这个问题可能是相关的,但我不能确定......
https://stackoverflow.com/questions/8250851/big-ostringstream-causes-application-crash
编辑:
我忘了提到,我正在使用 eclipse 进行开发,当我在 eclipse 中运行它时,我无法让程序崩溃。只有当我运行通过 Windows 或命令行生成的 exe 时才会崩溃