На самом деле не знаю, что с этим делать - моя программа продолжает падать, когда я выделяю память для строки, чаще всего в этом безобидном кусочке кода, который в других контекстах никогда не вызывал проблемы:
template <class T>
inline string to_string (const T& t, bool use_fixed = false)
{
stringstream ss;
if (use_fixed) ss.setf(ios::fixed, ios::floatfield);
ss << t;
return ss.str();
}
В частности, происходит сбой при 'ss << t'. t был тип int, == 0. Последние строки трассировки стека выглядят так (увы, я слишком нов, чтобы опубликовать скриншот): </p>
0 ??
1 malloc
2 operator new(unsigned int)
3 std::string::_Rep::_S_create(unsigned int, unsigned int, std::allocator<char> const&)
4 std::string::_Rep::_M_clone(std::allocator<char> const&, unsigned int)
5 std::string::reserve(unsigned int)
6 std::basic_stringbuf<char, std::char_traits<char>, std:allocator<char> >::overflow(int)
...
Единственное, что может иметь отношение к моей программе, - это то, что она имеет несколько потоков и запускает дочерний процесс, который имеет несколько потоков, а также вызывает эту функцию. Я на Ubuntu 10.04. Спасибо за внимание -
Мэтт