Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: alsav22   (13.04.2012 в 15:25)
sizeof(d) не имеет отношения к размеру строки. Это размер объекта string в байтах, и он от размера строки не зависит. Сколько байтов, зависит от компилятора. Чтобы узнать: cout << sizeof(string). Потом, (char*)&d к строке не имеет отношения. Это адрес объекта string (а не строки), явно приведённый к указателю на char. У меня такой код в файл кракозябы пишет. Сам объект string не содержит строку. Он содержит ИНФОРМАЦИЮ о строке (в частности, её размер(колличество символов), получаемый методом d.size(); указатель на строку, получаемый методом d.c_str() ) и методы для работы со строками. Capacity = 15 выделяется под пустую строку. Если строка становится больше 15, то capacity автоматически увеличивается до 31 и т.д.


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: