2009-09-17 43 views
2

出於某種原因,當我試圖將字符串cin變爲cin時,excode會拋出此錯誤。是否有人在Xcode 3.2中輸入字符串時出現問題?

測試(5640)的malloc:*誤差對象0x1000041c0:指針被釋放沒有被分配 *設置在malloc_error_break斷點調試 程序接收到的信號:「SIGABRT」。 sharedlibrary應用負載規則所有

這裏是產生的代碼:

#include <iostream> 
#include <string> 

using namespace std; 

int main() 
{ 
    string hello; 

    cout << "Enter a string"; 
    cin >> hello; 

    return 0; 

} 

所以沒有任何人有一個解決方案?

回答

1

根據這個論壇:http://discussions.apple.com/message.jspa?messageID=10236050#10236050

從技術上講,這是一個警告信息,而不是一個錯誤。這是GCC C++庫中的一個錯誤。再次提醒我爲什麼我不再編寫C++代碼。你會想在2009年他們會有這樣愚蠢的東西修復。

您可以通過確保您的hello變量被初始化爲開頭的東西來避免這種情況。

或者,您可以關閉迂腐警告。選擇您的調試目標並雙擊它或Command-i。向下滾動到「GCC 4.2 - 預處理」。選擇「預處理器宏」並將其刪除。您將不再收到警告消息。你仍然可以釋放未分配的內存,但你可以向GCC抱怨。

相關問題