Читать книгу Ссылки и указатели в C++: от основ к безопасности и современному коду - - Страница 30
Константная память неизменяемые сокровища
ОглавлениеКонстантная память это read-only часть статики, где хранятся неизменяемые данные: строковые литералы ("hello"), const глобальные и иногда константы времени компиляции. Представьте библиотеку с древними свитками: вы можете читать, но не писать ОС защищает страницы от записи (page protection). Это предотвращает ошибки (segfault при попытке модификации) и оптимизирует (данные shared между процессами).
В ELF/PE файлах .rodata сегмент. Строки: const char* s = "hi"; s указывает в RO. Модификация UB. Идеально для таблиц, конфигов, математических констант.
Пример:
#include <iostream>
const int CONST_GLOBAL = 100; // Может быть в .data или .rodata
int main() {
const char* str = "Immutable"; // В RO
// str[0] = 'X'; // UB, segfault
std::cout << str << std::endl;
return 0;
}