Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2010, 22:50   #11
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Когда Вы пишете
Код:
const char* str = "blablabla";
Весь код после трансляции сводится к присвоению переменной str адреса строки "blablabla", которая находится в сегменте константных данных.
Когда пишите вот так:
Код:
char str[] = "blablabla";
После трансляции код получаем несколько другой, а именно в стеке выделяется память под строку(кол-ство букав, плюс завершающий 0), а затем в выделенную память запихивается эта строка.
То есть в этих случаях строка хранится в разных местах, в первом случае в сегменте неизменяемых данных(попытка их поменять приводит к AV), во втором случае в стеке(менять можно как душа пожелает). То бишь для разных целей нужно использовать разную запись. Если строка в процессе работы не меняется, то эффективнее/безопаснее будет писать const char* str = "blabla", в ином случае использовать char str[] ...

Также не следует забывать, что класс string, в любом случае скопирует инициализирующую строку в свой внутренний буфер, потому ему смело можно передавать const char*
Код:
const char* str = "blablabla";
std::string s(str);

Последний раз редактировалось netrino; 06.04.2010 в 22:55.
netrino вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование из System::String в wchar_t* AxenicX Общие вопросы .NET 2 16.02.2010 22:31
Как получить адрес String строки или преобразовать String madboy4ik Общие вопросы по Java, Java SE, Kotlin 6 15.01.2010 11:57
Преобразование Char string SL1CK Общие вопросы Delphi 8 11.01.2010 22:35
Преобразование String в OleVariant vg169 Общие вопросы Delphi 8 15.07.2009 13:09
Преобразование int в String^ в С++ Mixasik Помощь студентам 1 21.06.2009 18:57