Re[8]: char* или char[]
От: Vamp Россия  
Дата: 03.01.04 19:42
Оценка:
K>const char sz[] = "TEXT";
K>везде используется непосредственный адрес строки находящейся в RO (память выделена на этапе компиляции)
Мысль выражена не вполне четко . Уточню. Массив константных символов инициализируется строковым литералом TEST. Однако, насчет памяти (RO или RW) я бы не был так категоричен. В конце-концов, есть const_cast. Попытка изменить содержимое этого массива вызовет ошибку на этапе компиляции, вот единственное, что можно утверждать наверняка.

K>char * sz = "TEXT";

K>...Соответственно 7.1 падает при попытке скопировать что-нить в такой буфер (хотя компилит без предупреждений).
Наследство от С, в котором не было const. Я тоже не очень понимаю, почему не выдать хотя бы предупреждение.

K>char sz[] = "TEXT";

K>непосредственный адрес строки выделенной в рантайме на стеке и скопированный из отсека RO. Самый медленный, но в такой буфер можно писать.
По скорости не зависит от самого первого варианта.
Да здравствует мыло душистое и веревка пушистая.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.