C++ с помощью getline () печать: освобождаемый указатель не был выделен в XCode

Я пытаюсь использовать std:getline (), но получаю странную ошибку периода выполнения:

malloc: * ошибка для объекта 0x10000a720: освобождаемый указатель не был выделен *, устанавливает точку останова в malloc_error_break для отладки

Это - код, который производит эту ошибку:

//main.cpp
#include 
#include 

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;
}

Перед каждым словом я получаю эту ошибку. Из комментариев это, кажется, определенная ошибка OSX/XCode. Какие-либо подсказки на этом?

Обновление: ошибка только печатается в Режиме отладки. Если я создаю этот код в режиме Release, все прекрасно.

Обновление 2: Больше информации о той проблеме может быть найдено здесь.

Решение:

Набор

_GLIBCXX_FULLY_DYNAMIC_STRING=1

в Ваших Макросах Препроцессора в целях информация создают вкладку.

Информация о системе:

OSX 10.6.2 | XCode 3.2 | g ++ 4.2 | отлаживают конфигурацию для i386

10
задан dan 10 February 2010 в 08:44
поделиться

1 ответ

По крайней мере один человек сообщил о проблемах с g++ 4.2.1 на Apple, которые, похоже, связаны с вашими и имеют отношение к неправильной конфигурации стандартной библиотеки с определением _GLIBCXX_FULLY_DYNAMIC_STRING (не то чтобы я понимал что-то из того, что я здесь печатаю).

Вы можете получить некоторую подсказку из потока группы новостей, который включает это сообщение:

10
ответ дан 4 December 2019 в 01:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: