मैं एसटीडी उपयोग करने के लिए कोशिश कर रहा हूँ आवंटित नहीं किया गया था: 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
यह मेरी मशीन पर ठीक चलाता है। मैं मैकबुक का उपयोग नहीं कर रहा हूं, हालांकि शायद इसके साथ कुछ करने के लिए हो सकता है लेकिन वीएस -2008 के साथ एक्सपी पर यह संकलित और ठीक चलाता है। – ihtkwot
इसी तरह, यह मेरी पीपीसी पावरबुक पर त्रुटियों के बिना संकलित और चलाता है। जी ++ 4.0.1 के साथ मैक ओएस 10.4। और यह सही लगता है ... – dmckee
मेरे लिए विजुअल स्टूडियो 2008 के तहत भी संकलित और चलाता है। –