Розміщення даних в пам'яті, стек, куча, покажчики с, fkn antitotal

покажчик всього лише вказує на область пам'яті, в якій зберігається змінна. Це властивість покажчика дуже корисно, але є ще одне, набагато частіше застосовується в програмуванні. Покажчик дозволяє здійснити динамічне виділення пам'яті.

примітивні типи даних мають певний розмір пам'яті, розняти лише від варіанту платформи.
Дізнатися його можна за допомогою функції sizeof ().
Структури і класи, про які ми поговоримо в інших уроках, займають пам'яті рівно стільки, скільки всі типи даних, що входять до їх поля.

структура пам'яті

структура будь-модульна програми така, що складається з =

  1. стека
  2. і решті пам'яті, званої купою.

Стек - це спеціальна структура даних, призначена для швидкого доступу до даних. Цю структуру ще часто називають LIFO (Last In First Out) - останнім прийшов, першим пішов. Стек являє собою, як би обойму, в яку замість патрона заганяється чергова змінна.
В силу своєї природи стековая пам'ять працює набагато швидше, ніж звичайна.
Стек багатьом хороший, але от у нього є маленька проблема - обмежений обсяг пам'яті. Примітивні типи даних займають мало пам'яті і тому приміщення їх в стек є логічно правильним рішенням, що прискорює роботу програми.

Однак в C ++, так само як і в інших компільованих мовах, існують громіздкі типи даних типу =

Змінні цих типів можуть займати великі області пам'яті, що може привести до переповнення стека і екстреного припинення роботи вашої програми.
Це дуже неприємний момент в кодуванні. Щоб уникнути подібної долі, була придумана концепція розміщення таких громіздких типів даних у вільній області пам'яті, званої купою.

Ку? Ча (англ. Heap) в інформатиці та програмуванні - назва структури даних, за допомогою якої реалізована динамічно розподіляється пам'ять додатки, а також обсяг пам'яті, зарезервований під цю структуру.

Фактично, купа - це вся ваша оперативна пам'ять. Гігабайт або 4 гігабайти - ролі не грає. Все це буде купою
Що дає купа? Практично величезний обсяг пам'яті, здатний вмістити в себе навіть найбільший тип даних.

Для розміщення і видалення динамічних об'єктів використовуються примітиви «створити об'єкт» (наприклад, malloc. New) і «видалити об'єкт». Крім того, перед початком роботи програми виконується ініціалізація купи, в ході якої вся спочатку виділена під купу пам'ять відзначається як вільна.

При розміщенні об'єкта реалізація примітиву «створити об'єкт» переглядає доступну купі вільну пам'ять в пошуках можливості розмістити в ній об'єкт необхідного розміру. Багато реалізації примітивів купи можуть в разі нестачі власної вільної пам'яті запитати додаткову пам'ять у операційної системи. У разі, якщо з тих чи інших причин розмістити об'єкт неможливо, примітив «створити об'єкт» повідомляє про помилку

Key Words for FKN + antitotal forum (CS VSU):

Схожі статті