我敢肯定,我只是在這裏做一些愚蠢的事情,但我無法弄清楚它是什麼。當我嘗試運行此代碼: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
編輯:固定的主力,其中cout << s
應該已經cout << s2
的最後一行。它運行沒有錯誤,如果我初始化s2到「嗨」,但不是其他。這只是一個奇怪的gcc編譯問題?
這對我來說看起來很好,並且在我的機器上成功運行。這是你使用的確切輸入文件?什麼OS /編譯器? – 2010-04-13 20:53:51
那它不是一個輸入文件。我試圖使用一個字符串作爲輸入。 – LandonSchropp 2010-04-13 21:45:56
哦,對不起,我正在使用Mac OS X 10.6.3(10D573)和Xcode中的默認編譯器(我認爲它是gcc,但我不確定)。 – LandonSchropp 2010-04-13 21:49:05