Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 23.05.2018
Сообщений: 12
1

Что делать если при создании std::string чтение памяти из нее невозможно

10.01.2019, 13:16. Показов 1201. Ответов 3

Я столкнулся с такой проблемой: у меня есть функция, которая в качестве параметра получает std::string и что-то делает с ним, но когда я в дебаггере просмотрел [базовое представление] этого объекта, то увидел, что один из элементов std::string был инициализирован адрессом 0x5e783231 <ошибка при чтении символов строки> - картинка с ошибкой в прикрепленном файле. Что делать и как это исправить?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Миниатюры
Что делать если при создании std::string чтение памяти из нее невозможно  
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2019, 13:16
Ответы с готовыми решениями:

Что делать если std::string ломается
Если я пытаюсь вывести что-либо на русском, то у меня ломается текст, как это можно исправить в...

Что делать если при создании отчета в мастере отчетов нет кнопки итоги?
Что делать если при создании отчета в мастере отчетов нет кнопки итоги?

Что делать,если невозможно зайти в BIOS?
Всем доброго времени дня или ночи!У меня материнка ASRock AB350M Pro4.При загрузке системы не могу...

Error C2664: std::vector<_Ty>::push: невозможно преобразовать параметр 1 из 'double' в 'const std::string &'
#include &lt;iostream&gt; #include &lt;stack&gt; #include &lt;sstream&gt; #include &lt;string&gt; using namespace...

3
249 / 219 / 63
Регистрация: 30.07.2013
Сообщений: 465
10.01.2019, 14:38 2
А действительно ли надо лезть во внутреннее представление std::string?

Компиляторы используют разные оптимизации для хранения коротких строк. Можно погуглить small string optimization и найти много чего, например https://shaharmike.com/cpp/std-string/

Идея такой оптимизации в том, что для хранения таких коротких строк, как "12x^2y", память в куче не используется. Соответственно в _Ptr, который очень даже может указывать именно на такую память, содержится мусор.
0
0 / 0 / 0
Регистрация: 23.05.2018
Сообщений: 12
10.01.2019, 19:47  [ТС] 3
Так я бы не задавался этим вопросом, не возникни проблема: когда я вызываю метод std::string substr(), то возвращается неправильное значение(как использовать метод я знаю), а в окошке дебаггинга пишется, что эта функция вернула <ошибка чтения символов строки>. Причем вызываю я его несколько раз, и иногда все нормально работает, а иногда нет(этот вопрос я уже задавал на других форумах и ответа, как это исправить не получил).
0
15110 / 8110 / 1958
Регистрация: 30.01.2014
Сообщений: 13,782
10.01.2019, 19:57 4
Лучший ответ Сообщение было отмечено Роман Кутенков как решение

Решение

Цитата Сообщение от Роман Кутенков Посмотреть сообщение
Так я бы не задавался этим вопросом, не возникни проблема
Вы на ложном пути. Ищите ошибку в своем коде.
Проявиться ошибка может далеко за пределами места ее возникновения. Это нормально.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2019, 19:57

string,switch, что делать, если требуется сравнение русского текста
int main() { setlocale(LC_ALL, &quot;Russian&quot;); ofstream fout(FILENAME); string inner,math_count,...

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка...

Во время отладки в Visual Studio 2015 при просмотре хедеров возникает ошибка: чтение памяти невозможно
При отладке в Visual Studio 2015 невозможно просмотреть содержимое переменных! Пишет &quot;Чтение...

Error C2440: =: невозможно преобразовать 'std::string' в 'double'
&gt;c:\users\nreshetova\documents\visual studio 2008\projects\sort3d1\sort3d1\sort3d1.cpp(73) : error...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.