Зміст курсу
Основи C
Основи C
Вказівники навколо нас
Ви, напевно, вже знайомі з ідеєю вказівників з вашого повсякденного досвіду. Подумайте про те, як ваш будинок має унікальну адресу. Саме через цю адресу ви отримуєте посилки з Amazon, листи та піцу, яку ви щойно замовили. По суті, щоб дістатися до вас, люди та служби використовують адресу вашого дому.
Коли будинок змінює власника, важливо оновити записи, щоб відобразити дані нового власника. І якщо ваша сім'я зростає, важливо додати нових членів до записів, пов'язаних з адресою.
Записи про власність постійно оновлюються. Деякі дані змінюються, деякі видаляються, а нові деталі додаються.
Розглянемо інший приклад - розробка системи безпеки для вашого офісу. Розробник може не знати точну кількість співробітників, які у вас будуть. Тому в коді вони можуть виділити місце для 100 співробітників:
Ця установка досить базова і з самого початку має обмеження.
Але що, якщо ваша компанія розширюється, відкриваючи новий відділ, і набирає 30 нових кваліфікованих співробітників, збільшуючи загальну кількість до 130? Однак система безпеки налаштована лише на 100. Чи ви переробляєте всю систему безпеки або відпускаєте нових працівників? Ця дилема вирішується за допомогою динамічного розподілу пам'яті.
Динамічний розподіл пам'яті
У мові C існує три типи розподілу пам'яті:
- Статичний розподіл, який відбувається під час компіляції. Наприклад, коли компілятор бачить, що ви оголосили змінну
int
, він виділяє для неї 4 байти; - Автоматичний розподіл пам'яті відбувається всередині функцій, особливо коли змінні оголошуються всередині цих функцій;
- Динамічний розподіл пам'яті виділяється тим, що пам'ять призначається не на етапі компіляції, а під час фактичного виконання вашої програми.
Динамічний розподіл пам'яті дає програмісту повний контроль, оскільки вони контролюють як виділення, так і звільнення пам'яті. Цей підхід дозволяє програмісту значно оптимізувати продуктивність програми, причому вказівники відіграють ключову роль у цьому процесі.
Дякуємо за ваш відгук!