Re[2]: Инициализация массива строк
От: Erop Россия  
Дата: 11.03.09 13:03
Оценка:
Здравствуйте, ariets, Вы писали:

A>
A>char * p = "ABC";
A>


A>Там написано, что компилятор в области статических данных( read only memory ) помещает строку "ABC". Указатель p на char хранит в себе значение адреса ячейки памяти, где расположен символ "A"

A>Теперь попробуем

А почему область статических данных обязательно read only memory?

Скажем такой вот код:
int a1 = 5;
int a2 = a1 *= 2;


Вполне так себе порождает модифицируемые статические данные...

Возможно меня глючит, но мне кажется, что в языке С строковые литералы модифицируемые, а в С++ нет. Я так подозреваю, что у топикстартера язык С, а компилятор почему-то берётся С++, от того все и проблемы...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.