2010-02-10 8 views
10
में

मैं एसटीडी उपयोग करने के लिए कोशिश कर रहा हूँ आवंटित नहीं किया गया था: getline(), लेकिन एक अजीब रनटाइम त्रुटि हो रही है:सी ++ getline() प्रिंट का उपयोग कर: सूचक मुक्त कर दिया जा रहा है XCode

malloc: * error for object 0x10000a720: pointer being freed was not allocated * set a breakpoint in malloc_error_break to debug

इस कोड है कि इस उत्पादन होता है त्रुटि:

//main.cpp 
#include <iostream> 
#include <sstream> 

int main (int argc, char * const argv[]) 
{ 
    std::istringstream my_str("demo string with spaces"); 
    std::string word; 

    while (std::getline(my_str, word, ' ')) { 
     std::cout << word << std::endl; 
    } 
    return 0; 
} 

प्रत्येक शब्द से पहले मुझे यह त्रुटि मिलती है। टिप्पणियों से यह एक ओएसएक्स/एक्सकोड विशिष्ट त्रुटि प्रतीत होता है। उस पर कोई संकेत?

अद्यतन: त्रुटि केवल डीबग मोड में मुद्रित है। अगर मैं रिलीज मोड में यह कोड बनाता हूं तो सब कुछ ठीक है।

अद्यतन 2: उस मुद्दे पर अधिक जानकारी here मिल सकती है।

समाधान:

लक्ष्यों जानकारी टैब निर्माण में सेट

_GLIBCXX_FULLY_DYNAMIC_STRING=1

अपने प्रीप्रोसेसर मैक्रो में।

सिस्टम जानकारी:

OSX 10.6.2 | XCode 3.2 | g++ 4.2 | debug config for i386

+1

यह मेरी मशीन पर ठीक चलाता है। मैं मैकबुक का उपयोग नहीं कर रहा हूं, हालांकि शायद इसके साथ कुछ करने के लिए हो सकता है लेकिन वीएस -2008 के साथ एक्सपी पर यह संकलित और ठीक चलाता है। – ihtkwot

+1

इसी तरह, यह मेरी पीपीसी पावरबुक पर त्रुटियों के बिना संकलित और चलाता है। जी ++ 4.0.1 के साथ मैक ओएस 10.4। और यह सही लगता है ... – dmckee

+0

मेरे लिए विजुअल स्टूडियो 2008 के तहत भी संकलित और चलाता है। –

उत्तर

10

कम से कम एक व्यक्ति ने बताया है ++ जी के साथ 4.2.1 एप्पल पर समस्याओं कि संभवतः संबंधित करने के लिए तुम्हारा _GLIBCXX_FULLY_DYNAMIC_STRING परिभाषा के साथ मानक पुस्तकालय का अनुचित विन्यास के साथ क्या करने वाले लगते हैं (ऐसा नहीं है कि मैं जो भी टाइप कर रहा हूं उसे समझता हूं)।

आप समाचार समूह धागा है कि यह संदेश भी शामिल है से एक सुराग का एक सा मिल सकता है:

+0

यह है। मैंने समस्या को पुन: उत्पन्न किया और लक्ष्य सेटिंग विंडो में '_GLIBCXX_FULLY_DYNAMIC_STRING' जोड़ कर इसे ठीक किया। (इसे * प्रोजेक्ट * सेटिंग्स विंडो के "प्रीप्रोकैसिंग" सेक्शन में न जोड़ें; यह कुछ भी नहीं करता है। एक्सकोड, grrrrr ...) – Potatoswatter

+0

चूंकि यह एक टीम प्रयास है, क्या कोई बग की रिपोर्ट करना चाहेगा? – Potatoswatter

संबंधित मुद्दे