Читать книгу Ссылки и указатели в 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;


}

Ссылки и указатели в C++: от основ к безопасности и современному коду

Подняться наверх