问题标签 [stack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
11 回答
5690 浏览

stack - 堆栈 - 为什么是 PUSH 和 POP?

我想知道为什么我们使用术语“push”和“pop”来添加/删除堆栈中的项目?是否有一些物理隐喻导致这些术语很常见?

我唯一的建议是类似于手枪的弹簧弹匣,子弹被“推”入其中并可以“弹出”出来,但这似乎不太可能。

第二个堆栈琐事问题:为什么大多数 CPU 将调用堆栈实现为在内存中向下增长,而不是向上增长?

0 投票
5 回答
1466 浏览

c++ - 这种类型的内存是在堆还是栈上分配的?

在 C++ 的上下文中(没关系):

我所学到的告诉我,如果你像这样创建一个 Foo 实例:

然后数组 x 分配在堆上,但是如果您像这样创建 Foo 的实例:

然后它在堆栈上创建。

我在网上找不到资源来确认这一点。

0 投票
11 回答
10582 浏览

c++ - C 和 C++ 如何在堆栈上存储大对象?

我试图弄清楚 C 和 C++ 如何在堆栈上存储大对象。通常,堆栈是一个整数的大小,所以我不明白更大的对象是如何存储在那里的。他们只是占用多个堆栈“插槽”吗?

0 投票
3 回答
1821 浏览

c# - C# Out 参数问题:Out 如何处理值类型?

更新所以完全拉了一个工具时刻。我真正的意思是参考与输出/参考。任何说“参考”的东西,我真正的意思是参考,如

一些方法(对象一些对象)

相对

SomeMethod(out someObject)

对不起。只是不想更改代码,因此答案已经有意义。

据我了解,与 ref 不同,它“复制”指针并在堆栈上创建一个新空间以使用该指针,但不会更改指针:

Out 复制指针并可以操纵它指向的位置:

对对象来说这很好而且很花哨,但是值类型怎么办,因为它们没有任何东西指向仅在堆栈上?

0 投票
12 回答
57462 浏览

c++ - 在堆栈上分配的变量上调用 delete

忽略编程风格和设计,在堆栈上分配的变量上调用 delete 是否“安全”?

例如:

或者

0 投票
8 回答
8450 浏览

java - 有没有办法将 Knuth shuffle 应用于 Stack 数据结构?

对于编程课,我正在为第一个家庭作业创建一个二十一点程序。教授给了我们一个示例 Card 类,其中包括将它们添加到卡片组的方法。对于她的套牌,她使用了一个 ArrayList,您可以使用 Collections.shuffle() 方法轻松地进行 Knuth Shuffle。

尽管(显然)该方法不适用于堆栈,但我认为堆栈结构最适合该程序,因为您可以将卡片弹出和推入和推出牌组。

0 投票
4 回答
12110 浏览

c++ - new 在堆栈而不是堆上(如 alloca 与 malloc)

有没有办法使用关键字在堆栈(ala )而不是堆( )new上分配?allocamalloc

我知道我可以自己破解,但我不想这样做。

0 投票
4 回答
215 浏览

lisp - 计算列表长度的尾部优化函数的最佳方法是什么?

这是一个论坛发帖人给出的一个例子,我不知道这个尾巴是否优化了。另外,有人可以外行描述尾部优化版本如何胜过普通版本。

非尾部优化版本?

0 投票
7 回答
11955 浏览

c# - 堆与堆栈分配的含义(.NET)

从关于堆和堆栈的SO 答案1中,它向我提出了一个问题:为什么知道变量的分配位置很重要?

另一个答案中,有人指出堆栈更快。这是唯一的暗示吗?有人可以给出一个简单的分配位置更改可以解决问题(例如性能)的代码示例吗?

请注意,这个问题是 .NET 特定的

1 问题已从 SO 中删除。

0 投票
2 回答
326 浏览

c# - 关于引用/集合/值类型的另一个 C# 问题

我有以下代码:

我的问题是第一人称实例去哪里了?CLR 会在某处神奇地创建它的新实例吗?无论如何在列表之外引用它 - 例如,在方法完成后它会去哪里?使用什么方法将对象存储在集合中(这是 4 个问题)。