У меня есть приложение C ++, которое я устанавливаю простую текстовую строку в std::string
, например:
string foo = "my test string";
, но когда я вижу это в отладчике, я получаю следующее:
{_Buf=0x09d55c50 "my test string" _Ptr=0x74736e69 "‹MQhDqrtV‹ר‹VPכ‹URhDqrtP‹ר…uu‹Muƒֱ$טFo" }
или в другой строке я получаю это:
{_Buf=0x09d55c70 "some other string" _Ptr=0x7372614c <Bad Ptr> }
Я вручную набираю его в Visual Studio Express 2008, конечно, я нашел его после какой-то другой библиотеки, которая былаожидая, что эта строка продолжала получать исключения.
Когда я изменил ее на foo="";
, все работало нормально.
Функция lib api выглядит следующим образом:
connect(const std::string& hostName, const std::string& userName, const std::string& password)
(MySQL C ++соединитель)
Мой вопрос: что это за _Ptr
, и что более важно, почему я получаю исключения?
ОБНОВЛЕНИЕ
хорошо, это действительно странно, но вещьчто вызывает у меня исключение - это длина строки, только если я установил строку длиной 15 символов, все будет в порядке, но если я установлю длинную строку, исключение будет выброшено.Я использую Visual Studio 2008 Express 32 бит