Задать вопрос
eugene_leshchinskiy
@eugene_leshchinskiy

Что значит последовательный участок памяти?

наткнулся на вот такое вот утверждение
Кроме того, и в стеке, и в очереди используется один последовательный участок памяти

Насколько я понял, здесь имеется ввиду в отличие от списков. Но если я реализую стек через список, разве это не будет противоречить сказанному? Объясните пожалуйста.
  • Вопрос задан
  • 192 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
Один последовательный участок памяти — это значит «последовательные адреса памяти». Таковыми будут массив простой и динамический, строка традиционного устройства, и все структуры памяти, что на них основаны. В том числе простейший стек и кольцевая очередь.

Для чего это нужно?
1. Это ближе к железу: проще код, лучше работает кэш, а значит, быстрее.
2. Некоторые функции, особенно нешаблонные, для своей работы требуют именно последовательных ячеек памяти.

Но если я реализую стек через список, разве это не будет противоречить сказанному?

Совершенно верно, будет. Отсюда и знаменитая ошибка «переполнение стека» — непонятно, как наладить стек вызовов бесконечной ёмкости и относительно простого устройства. Потому, если нужна очень глубокая рекурсия (например, при обходе сетей), стек вызовов приходится эмулировать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Olej
@Olej
инженер, программист, преподаватель
наткнулся на вот такое вот утверждение

Толкование подобных утверждений могут сильно различаться в зависимости от используемого языка программирования.

Если же это вы наткнулись в общих рассуждениях в книге "программирование для домохозяек", то не принимайте близко к сердцу - автор сам не понимает о чём пишет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы