I'm trying to use std:getline() but getting a strange runtime error:
malloc: * error for object 0x10000a720: pointer being freed was not allocated * set a breakpoint in malloc_error_break to debug
This is the code that produces this error:
//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;
}
Before each word I get this error. From the comments it seems to be a OSX/XCode specific error. Any hints on that?
Update: The error is only printed in Debug mode. If I build this code in Release mode everything is fine.
Update 2: More info on that issue can be found here.
Solution:
Set
_GLIBCXX_FULLY_DYNAMIC_STRING=1
in your Preprocessor Macros in targets info build tab.
System info:
OSX 10.6.2 | XCode 3.2 | g++ 4.2 | debug config for i386
g++
in a fresh terminal, then consider a reboot, then consider a reinstallation of the developer tools. – Cottrillgetline => string::append => string::reserve => free
: I can reproduce it only within XCode, not from the command line. – Flite-D_GLIBCXX_DEBUG
on the g++ command line. – Bordie