awesome-everything EN
↑ Обратно к восхождению

Базовый CS с нуля

Память: тест с выбором

Суть Синтез по юниту в формате выбора: address vs value, байтовая адресация, pointer и dereference, время жизни stack vs heap.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на middle-высоте — в небе
◷ 13 min

Шесть вопросов, связывающих весь юнит воедино. Ни один не про заучивание определения — каждый требует совместить две-три идеи (address vs value, byte, pointer, stack vs heap) и рассудить, что машина делает на самом деле.

Цель

Подтверди, что умеешь связать ключевые идеи юнита: у ячейки есть и address, и value, byte — единица адресации, value сам может быть address (pointer), а stack и heap — два региона одной и той же памяти с разным временем жизни.

Викторина

Ячейка по address 7 хранит value 7. Какое утверждение верно?

Викторина

Программа хранит 32-битное целое в byte-адресуемой памяти начиная с address 100. Какие address оно занимает и почему?

Викторина

Ячейка по address 5 хранит value 12. Ячейка по address 12 хранит value 99. Программа делает dereference pointer'а по address 5. Сколько чтений памяти произойдёт и каков итоговый результат?

Викторина

Почему indirection через pointer встречается почти в каждой нетривиальной программе, хотя стоит лишнего чтения памяти?

Викторина

Функция main вызывает a, та вызывает b. Пока b работает, a создаёт большой объект на heap и держит на него pointer. b возвращается, затем возвращается a. Что верно про память после этого?

Викторина

Рекурсивная функция без базового случая бесконечно вызывает себя, и программа падает со stack overflow. Что произошло на самом деле в терминах модели юнита?

Итог

Сквозная линия юнита — одна модель: память есть ряд byte-адресуемых ячеек; у каждой ячейки фиксированный address и изменяемый value; value сам может быть address — это и делает pointer, а следование за ним (dereference) стоит одного лишнего чтения; и одна и та же физическая память разделена на LIFO-stack, чьи фреймы живут ровно столько, сколько их функция, и heap, чьи объекты могут пережить любой вызов. Каждый вопрос выше сводится к различению address и value и времени жизни от местоположения.

Продолжить восхождение ↑Память: свободное припоминание
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.