170 похожих чатов

Ну чар занимает 1 байт, я это знаю, получается чтобы

получить размер строки, а он по определению массив чаров, нужно умножать размер чара на размер массива?

25 ответов

18 просмотров

Если чар занимает 1 байт, то зачем умножать?

Делить размер массива на размер типа

там не только символы. в случае сишной строки там ещё нулевой байт в конце и указатель, в случае std::string указатель и две длины

Kirill Bolshakov
Ну это не даст размер строки

Даст, если строка представлена в виде массива чаров

Kirill Bolshakov
Скорее три указателя

разве? по-моему там указатель, длина и капасити

Kirill Bolshakov
Думаю там вместо длин указатели

https://github.com/llvm/llvm-project/blob/89b59345ee29d2cc1afa1f60445916ae2e74be6d/libcxx/include/string#L733-L738 https://github.com/llvm/llvm-project/blob/89b59345ee29d2cc1afa1f60445916ae2e74be6d/libcxx/include/string#L763-L768

Алиса Кассель-Королёва
https://github.com/llvm/llvm-project/blob/89b59345...

pointer __data_ - указатель на данные size_type __size_ - размер строки (количество символов) size_type __cap_ - максимально возможный размер строки без переаллокаций (если добавить больше символов, все данные придётся перемещать, поменяется указатель __data_, инвалидируются итераторы)

Если string это массив чаров, тогда почему я могу делать так? И почему у этого массива есть методы?) int main() { string a = "abc"; a += "w"; cout << a; return 0; }

jon pedro
Если string это массив чаров, тогда почему я могу ...

потому что std::string и string это разные слова?

Dmitriy [Отпуск]
sizeof(char*) == sizeof(size_t)

Так длина всё равно не указатель

Алексей-Комягин Автор вопроса
Denis P
string это не массив чаров

Понятное дело, что это класс, тогда что такое string[i]

Это размер не строки, а буфера под строку...

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта