2014-02-23 3 views
0

this answer을 구현하여 boost :: lockfree :: queue를 통해 문자열을 전달하려고합니다.문자열 포인터 값을 가져 오는 방법은 무엇입니까?

마치 작동하는 것처럼 보이지만 포인터를 큐에서 꺼낸 후에 큐에 꽂으려고하면 메모리 주소 만 읽습니다.

나는 해결책을 찾아 본 적이 있지만 이상하게도 찾을 수는 없다.

ptr의 내용을 어떻게 얻을 수 있습니까?

boost::lockfree::queue<std::string*> queue(some_size); 
// push on via new 
queue.push(new std::string("blah")); 
// pop and delete 
std::string* ptr; 
if(queue.pop(ptr)) 
{ 
    std::cout << ptr << std::endl; 
    delete ptr; 
} 

결과 :

0x7f41fc000950 
+1

나는 바보 건가요 또는'표준 : : cout과 << * PTR << 표준 : : endl의 것이다 '충분? – Xarn

+0

@Gracchus 내 의견을 삭제했음을 확인하십시오. 두뇌 방귀이었다. –

답변

1

는 대만족, 단지 포인터 역 참조, 문자열의 내용을 얻을 수 있습니다. ;-)

std::cout << *ptr << std::endl;