|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.01.2010, 19:49 | #1 |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
std::string
Решил поинтересоваться насчет реализации данного класса - почему объект всегда весит 32 байта, не зависимо от длины строки? И где тогда хранится строка? Получается, что она по факту хранится в куче, т.е. в свободной памяти, и создана с помощью new или может быть malloc?
Кто-нибудь, объясните плз
Если я помог вам - порадуйте меня, нажмите на весы слева
|
23.01.2010, 20:05 | #2 | |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Цитата:
|
|
23.01.2010, 20:20 | #3 |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
Иначе в стеке, как, например, переменную какую-нибудь простую int или char...
Так ну суть вопроса не раскрыта - реализацию можно узнать? И почему тогда именно 32 байта? на какие данные уходят эти 32 байта? Эмм...скажем, пара указателей, может длина...Узнать можно где-нибудь? З.Ы. ну согласитесь, на эту тему приятнее беседовать, чем обсуждать студентческие задачи на логику или просто темы типа "СПАСИТЕ ЭКЗМЕН ЗАВТРА" ))))))
Если я помог вам - порадуйте меня, нажмите на весы слева
|
23.01.2010, 20:32 | #4 |
Форумчанин
Регистрация: 07.01.2010
Сообщений: 141
|
реализация строки не стандартизирована, поэтому внутренности реализации зависят от разработчиков. можно и в четире байта уложиться, а можно и в 32.
Например в строке от майкрософта был внутренний буффер (что-нидубь типа char internalBuffer[16] на несколько символов, что позволяло не выделять память до тех пор пока строка была короткой. |
23.01.2010, 20:34 | #5 | |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Цитата:
|
|
23.01.2010, 20:40 | #6 | |
Форумчанин
Регистрация: 13.12.2009
Сообщений: 272
|
Цитата:
Эх ну вобщем реализация останется под завесой тайны, в принципе она не была критична, главное было убедиться в теории насчет кучи
Если я помог вам - порадуйте меня, нажмите на весы слева
|
|
23.01.2010, 21:21 | #7 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
E2015 Ambiguity between 'std::log(double)' and 'std::log(long double)' | Namolem | Помощь студентам | 3 | 02.04.2011 20:22 |
Как получить адрес String строки или преобразовать String | madboy4ik | Общие вопросы по Java, Java SE, Kotlin | 6 | 15.01.2010 11:57 |
функция для подсчета количества символов в строке типа std::string a | Артэс | Общие вопросы C/C++ | 3 | 06.07.2009 17:43 |
std::vector | ciaonataha | Общие вопросы C/C++ | 1 | 10.05.2009 15:50 |
std | Викдон | Общие вопросы C/C++ | 3 | 17.02.2009 11:33 |