boost::lexical_cast 에서 std::bad_alloc exception 이 발생합니다.
글쓴이: trymp / 작성시간: 화, 2015/11/10 - 10:02오후
boost 로 network 프로그램을 짜고 있습니다. single thread 이고요
아래와 같이 async_read_some 에 대한 callback 으로 아래 HandleRead() 함수가 호출되는데
1번 위치에 lexical_cast() 를 쓰면 잘되고요.
2번 위치에 lexical_cast() 를 쓰면 std::bad_alloc exception 이 발생합니다.
에휴 이것때문에 계속 고생이네요.. 상식적으로 어이가 없네요..ㅠㅠ
고수님들의 조언 부탁드립니다.
class TestConn ...... }; void TestConn::HandleRead(const boost::system::error_code& error, size_t bytes_transferred) { if (error || bytes_transferred <= 0) return; //1번위치 int num = boost::lexical_cast<int>("22"); string recvMsg; copy(m_Buffer.begin(), m_Buffer.begin() + bytes_transferred, recvMsg.begin()); // 2번 위치 // int num = boost::lexical_cast<int>("22"); ...... }
Forums:
...
메모리가 깨진 게 아닌가 하는 의심이 드는데요. 한번 valgrind로 돌려보시는 것이...?
* 그리고 잘 이해가 안 가는데 왜 그냥 "int num = 22"라고 쓰지 않는 거죠?
댓글 달기