Я уверен, что я просто делаю что-то глупое здесь, но я не могу понять, что это такое. Когда я пытаюсь запустить этот код:istringstream в C++
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main(int argc, char *argv[])
{
string s("hello");
istringstream input(s, istringstream::in);
string s2;
input >> s2;
cout << s;
}
Я получаю эту ошибку:
malloc: *** error for object 0x100016200: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Единственное, что я могу думать о том, что я выделил s2 в стеке, но я думал, что строки управлять своей собственной содержимое в куче. Любая помощь здесь будет оценена по достоинству.
Спасибо,
helixed
EDIT: Фиксированный последнюю строку основной, где cout << s
должен был cout << s2
. Он работает без ошибок, если я инициализировал s2 на «привет», но не иначе. Это просто странная проблема компиляции gcc?
Это выглядит хорошо для меня и успешно работает на моей машине. Это точный входной файл, который вы используете? Какой ОС/компилятор? –
Ну, это не входной файл. Я пытаюсь использовать строку в качестве ввода. – LandonSchropp
О, извините, и я использую Mac OS X 10.6.3 (10D573) и компилятор по умолчанию в Xcode (я думаю, что это gcc, но я не уверен). – LandonSchropp