Вопросы с тегом «stack»

Структура данных LIFO (Last In, First Out).

6
Стек и куча памяти в Java
Насколько я понимаю, в Java стековая память содержит примитивы и вызовы методов, а кучевая память используется для хранения объектов. Предположим, у меня есть класс class A { int a ; String b; //getters and setters } Где будет храниться примитив aв классе A? Почему куча памяти вообще существует? Почему мы …

7
Почему стек вызовов имеет статический максимальный размер?
Работая с несколькими языками программирования, я всегда задавался вопросом, почему стек потоков имеет предопределенный максимальный размер, а не расширяется автоматически по мере необходимости. Для сравнения, некоторые очень распространенные высокоуровневые структуры (списки, карты и т. Д.), Встречающиеся в большинстве языков программирования, разрабатываются по мере необходимости при добавлении новых элементов, ограничиваясь по …
46 stack 

6
Какой смысл в реализации стека с использованием двух очередей?
У меня следующий домашний вопрос: Реализуйте методы стека push (x) и pop (), используя две очереди. Это кажется мне странным, потому что: Стек - это очередь (LIFO) Я не понимаю, зачем вам нужно две очереди для его реализации Я искал вокруг: GeeksForGeeks Переполнение стека и нашел пару решений. Вот чем …
34 java  stack 

6
Почему программы используют стеки вызовов, если вложенные вызовы функций могут быть встроены?
Почему бы не сделать так, чтобы компилятор взял такую ​​программу: function a(b) { return b^2 }; function c(b) { return a(b) + 5 }; и преобразовать его в программу, подобную этой: function c(b) { return b^2 + 5 }; устраняя тем самым необходимость компьютера помнить обратный адрес c (b)? Я …

3
Почему стек растет вниз?
Я предполагаю, что есть история, но почему стек растет вниз? Мне кажется, что переполнение буфера будет намного сложнее использовать, если стек будет расти вверх ...
31 cpu  stack 

1
Пояснение указателя кадра
В сборке MIPS есть регистр для указателя стека и другой регистр для указателя кадра. Что такое указатель кадра и какова его цель? Чем он отличается от указателя стека?
28 assembly  stack 

6
Зачем нам куча, если в стеке все можно сделать намного эффективнее?
На самом деле это в некоторой степени связано с вопросом, который я задал вчера о том, почему в приложениях, которые мы используем сегодня , необходимы и стек, и куча (и почему мы не можем просто использовать кучу вместо обоих, чтобы иметь простой единый стандарт, чтобы пройти). Однако во многих ответах …
24 stack  heap 

4
Почему в стек помещается что-то, что называется «push»?
По данным http://dictionary.reference.com От себя глагол (используется с объектом) давить на или против (вещь) с силой, чтобы отодвинуть ее. двигаться (что-то) определенным образом, прикладывая силу; пихать; диск: отодвинуть что-то в сторону; толкнуть дверь . осуществлять или достигать, отбрасывая препятствия в сторону: пробиваться сквозь толпу. вызвать, чтобы расширить или проектировать; тяги. …

4
Сколько стека используется слишком много?
В последнее время, когда я писал на C или C ++, я объявляю все свои переменные в стеке только потому, что это вариант, в отличие от Java. Однако я слышал, что плохая идея объявлять большие вещи в стеке. Почему именно это так? Я полагаю, что переполнение стека связано, но я …

2
Как размер стека и кучи ограничен ОС?
Примечание : если вам нужно рассмотреть конкретную ОС, чтобы иметь возможность ответить, рассмотрите Linux. Всякий раз, когда я запускаю программу, ей предоставляется пространство для виртуальной памяти, с областью для ее стека и одной для ее кучи. Вопрос 1 : имеют ли стек и куча ограничение по статическому размеру (например, 2 …
21 linux  memory  stack  heap 

4
Понимание стека кадра вызова функции в C / C ++?
Я пытаюсь понять, как строятся стековые фреймы и какие переменные (параметры) помещаются в стек в каком порядке? Некоторые результаты поиска показали, что компилятор C / C ++ принимает решение на основе операций, выполняемых внутри функции. Например, если функция должна была просто увеличить переданное значение int на 1 (аналогично оператору ++) …
19 c++  c  compiler  stack 

4
Когда нет ТШО, когда беспокоиться о том, чтобы унести стек?
Каждый раз, когда обсуждается новый язык программирования для JVM, неизбежно появляются люди, которые говорят что-то вроде: «JVM не поддерживает оптимизацию хвостового вызова, поэтому я предсказываю множество взрывающихся стеков» Есть тысячи вариаций на эту тему. Теперь я знаю, что некоторые языки, такие как Clojure, например, имеют специальную конструкцию recur, которую вы …

2
Амортизированный анализ? (Гарантия исполнения в худшем случае)
Что такое амортизированный анализ? И как это может помочь мне достичь наихудших гарантий производительности в моих программах? Я читал, что следующие методы могут помочь программисту достичь гарантий производительности в худшем случае (то есть, по моим собственным словам: гарантировать, что время выполнения программы не превысит время выполнения в худшем случае): Рандомизированные …

5
Есть ли недостаток в выделении огромного количества стека для одного массива во встроенной системе?
У меня обычно не возникает проблем с выбором, должны ли некоторые данные быть глобальными, статическими или размещаться в стеке (здесь нет динамического выделения, поэтому не нужно использовать кучу). Я также прочитал несколько вопросов и ответов, таких как этот, но мой вопрос более конкретный, поскольку он включает в себя огромный объем …

1
Какова цель красной зоны?
Красная зона - это область фиксированного размера в памяти за указателем стека, которая не была «выделена». Компиляторы генерируют сборку для доступа к этой области с помощью простых конечных функций. Но я не вижу реальных преимуществ для красной зоны. Доступ к памяти за указателем стека действительно опасен и может легко привести …
12 assembly  stack 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.