Как получить значение указателя строки?

0

Я пытаюсь реализовать этот ответ, чтобы передать строки через boost :: lockfree :: queues.

Похоже, что он работает, но когда я пытаюсь отключить указатель после того, как он выскочил из очереди, он только считывает адрес памяти.

Я везде искал решение, но я странно не могу его найти.

Как я могу получить содержимое 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
    Я тупой или стану std::cout << *ptr << std::endl; хватает?
  • 0
    @Gracchus Обратите внимание, что я удалил свой комментарий. Это был мозговой пердеть.
Теги:
string
pointers
queue
lock-free

1 ответ

1
Лучший ответ

Чтобы получить содержимое строки, просто разыщите указатель, duh. ;-)

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню