|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
std::string в char*11.06.2012, 14:13. Показов 23280. Ответов 40
Метки нет (Все метки)
0
|
|
| 11.06.2012, 14:13 | |
|
Ответы с готовыми решениями:
40
ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri ошибка в программе (cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*')
|
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
||
| 11.06.2012, 18:30 | ||
|
0
|
||
|
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
|
| 11.06.2012, 18:34 | |
|
Bers, что вкладывается в понятие мёртвая память и почему она мёртвая в том примере?
0
|
|
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
||
| 11.06.2012, 18:34 | ||
|
И я не знаю, как работает codepad, но в MSVC в данной программе вообще std::sting str может быть удалён оптимизирующим компилятором, как ненужный объект. Этим можно было бы объяснить неожиданное поведение программы.
0
|
||
|
Заблокирован
|
||||||||
| 11.06.2012, 19:16 | ||||||||
Добавлено через 2 минуты
0
|
||||||||
|
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
|
| 11.06.2012, 19:18 | |
|
Ясно. Но непонятно из-за чего такие подозрения в том коде. Вывод строки работает с константной ссылкой на строку и не может вызывать неконстантные функции. А раз так, то указатель остаётся валидным.
0
|
|
|
Заблокирован
|
||||||
| 11.06.2012, 19:24 | ||||||
0
|
||||||
|
2383 / 1667 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
|
| 11.06.2012, 19:30 | |
|
Ах, да, присваивание я пропустил. Что ж, там что угодно может быть, согласен.
0
|
|
|
Заблокирован
|
||
| 11.06.2012, 19:54 | ||
|
Как бы.. выдавая наружу си-строку, стринг нарушает инвариант своего класса. Это опасная процедура. И нужна лишь для совместимости с старым си-кодом. Лучше это избегать. Я пользую сие только для сишных конструкций, и никогда при этом стринг не изменяю. Итак проблем хватает.
0
|
||
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
||
| 11.06.2012, 19:57 | ||
|
ТУт ещё такая фишка есть, что строки до 16 символов хранятся в объекте std::string в массиве фиксированного размера (в стеке) и только для бОльших строк выделяется память из кучи. С этим могло быть предыдущее поведение связанно.
0
|
||
|
59 / 6 / 1
Регистрация: 09.09.2011
Сообщений: 12
|
||||||
| 16.06.2012, 13:26 | ||||||
12345 12345 qwert qwert qwert так что, скорее всего c_str возвращает ссылку на оригинал.
0
|
||||||
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
||||||
| 16.06.2012, 13:41 | ||||||
|
Она не может возвращать ссылку на оригинал, сама строка может хранится в контейнере std::string блоками в разных участках памяти, что и писали выше. std::string::c_str() лишь генерирует Си строку, указателем на которую можно безопасно пользоваться до любого изменения строки. Вот тот при мер кода, который я так же приводил в пример на 2 странице:
0
|
||||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||||
| 16.06.2012, 15:00 [ТС] | ||||||||
0
|
||||||||
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
||
| 16.06.2012, 15:07 | ||
|
Вы покажите цитату где я утверждал, что он всегда будет хранится в разных местах памяти? Ваш пост если честно ни о чем. Ваша реализация кого то там класса, это Ваша реализация, и я почти уверен, что она отличается от всех тех, что используют существующие компиляторы. Я могу привести другую цитату:
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||
| 16.06.2012, 15:24 [ТС] | ||||
|
Добавлено через 2 минуты
0
|
||||
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|||
| 16.06.2012, 15:26 | |||
|
0
|
|||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 16.06.2012, 15:44 [ТС] | |||
|
Добавлено через 3 минуты Гипотез можно строить много, без строгих формулировок в стандарте (а "может" - не строгая, так как ничего не гарантирует) только листинг и спецификация реализации могут пролить свет на то, как в действительности хранятся данные и что возвращается. Добавлено через 2 минуты
0
|
|||
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
||||
| 16.06.2012, 15:52 | ||||
|
Да о чем Вы вообще? Куда Вас понесло?
Все выше Вами описанное c_str() не обязана делать, в ее задачу лишь входит генерация Си-строки, и возвращение указателя на нее, ни слова о том, что она должна как то объединять внутреннее представление строки, или вообще делать что то еще с объектом. Так зачем же разработчикам усложнять себе жизнь? Generates a null-terminated sequence of characters (c-string) with the same content as the string object and returns it as a pointer to an array of characters. Добавлено через 3 минуты PS: синоним слова генерировать - создавать. Функция создает массив символов, ограниченный ноль-символом, и по содержанию идентичный строке-объекту.
0
|
||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 16.06.2012, 15:59 [ТС] | |||
|
Добавлено через 1 минуту Добавлено через 51 секунду Модераторы, прикройте эту тему с хвостом ни о чём, а то она давно в офтоп свалилась.
0
|
|||
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 16.06.2012, 16:00 | |
|
Она не должна ничего объединять. Она должна создать массив символов ( Си-строку ), идентичный по содержанию string-объекту.
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||
| 16.06.2012, 17:05 | ||||
Что, в стандарт сложно заглянуть? Добавлено через 26 минут Хотя все понятно. В стандарте С++98 ничего такого не описано.
2
|
||||
| 16.06.2012, 17:05 | |
|
(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const& Где и почему используют ту или иную строку std::string, char[], System::String^ ? char* vs std::string std::string и/или char*
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
28. КОнкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования?
Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная.
Где разрыв
. . .
|
27. Планы на разработку функциональных требований к строительству внутри модели пищеблока (или не только его?)
anaschu 22.06.2026
Что уже реализовано и даёт конфликты «бесплатно»
Самый простой конфликт уже работает — конфликт за ресурс-работника. Заданий больше, чем доступных поваров → очередь в queue1. Это прямое отражение. . .
|
26. мед мат модель.Какие типы конфликтов функциональных требований можно рассчитать через ДЕС-моделирование (СМО) в AnyLogic?
anaschu 22.06.2026
Что ДЕС/ СМО умеет считать напрямую:
Конфликты за ресурсы (очереди, узкие места). Несколько типов агентов (повара, учителя, рабочие, пациенты) претендуют на один ресурс (лифт, вход, коридор,. . .
|
25 модель здравосохранения и функциональных требований к пищеблоку: конфликты функциональных требований.
anaschu 22.06.2026
Есть ли данные о том, какие функциональные/ эксплуатационные требования или их сочетания труднее всего учитывать при проектировании зданий?
Да, такие данные есть, и они хорошо описаны и в российской,. . .
|
|
Remote Connection Manager
DevAlt 21.06.2026
Написал для себя небольшую прилагу:
https:/ / github. com/ altbodhi/ ReConMan
По итогу пришел к мысли, что DU не дружат с существующими технологиями.
От сериализации до отображения в реляционную. . .
|
Администрация Хабра удаляет новые энрегоэфективные алгоритмы, которые не западной школы кода, и вовсе никак не сгенерировавны.
Hrethgir 20.06.2026
Делается это, как замечено, при правках - при объявлении концептуальных отличий в алгоримах. Делается это, по линейке событий - после дополнения публикации основными отличиями от основных западных. . .
|
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
|
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2.
Задача: контроль уникальности строк в. . .
|