问题标签 [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 投票
7 回答
16329 浏览

c++ - 关于 C/C++ 堆栈分配

在学习 C++(和 C)时,我对堆栈分配的工作有一些特别的疑问,我找不到解决方案:

  1. 堆栈分配是否隐式调用 malloc/free 函数?如果不; 它如何确保堆栈分配和堆分配之间没有冲突?

  2. 如是; C++ 中的堆栈分配是否也隐式调用 new/delete?如是; 重载类的新运算符会影响其堆栈分配吗?

它在 VC++ 中产生了令人困惑的结果;但由于 VC++ 并不完全符合标准(或者我听说过),我决定我最好在这里问...

0 投票
2 回答
2323 浏览

stack - 堆喷射,堆溢出,堆溢出有什么区别?

堆喷射,堆溢出,堆溢出有什么区别?

这些术语可以用缓冲区喷射、缓冲区溢出、缓冲区溢出代替吗?

它们也有相同的定义吗?

0 投票
26 回答
214998 浏览

algorithm - 使用两个队列实现堆栈

之前在那里问过一个类似的问题,但这里的问题是相反的,使用两个队列作为堆栈。问题...

给定两个具有标准操作( , , , )的队列,用标准操作(enqueue, dequeue, isempty, size)实现一个栈。poppushisemptysize

应该有两个版本的解决方案。

  • 版本A:推送项目时堆栈应该是有效的;和
  • 版本B:弹出项目时堆栈应该是有效的。

比起任何特定的语言实现,我对算法更感兴趣。但是,我欢迎使用我熟悉的语言()表达的解决方案。

0 投票
3 回答
1677 浏览

iphone - 我应该避免在 iPhone 上递归吗?

我应该避免使用在 iPhone 上运行的代码进行递归吗?

或者换一种说法,有人知道 iphone 上的最大堆栈大小吗?

0 投票
3 回答
929 浏览

c++ - 使用 __stdcall 和损坏的堆栈 (C++) 进行思想实验

今天脑子里一直在想函数指针这个话题,脑子里想到了以下场景:

AFAIK 这段代码会破坏堆栈,那么如果我运行这段代码,我会看到哪些类型的问题?

我会做这个调查自己,但是我已经离开我的开发机器一周了。

编辑:等一下,我想多了。正如评论中所观察到的那样,这段代码的目的是在所有事情都说完后在堆栈上留下一个参数(调用者将两个参数放在堆栈上,被调用者 - 只需要一个参数 - 只弹出一个)。然而,由于我的演员没有提到调用约定,我是否抛弃了 stdcall,至少从调用者的角度来看?int function(int)仍然会从堆栈中弹出一个参数,但是调用者是否会因为转换而恢复认为该函数是 __cdecl (默认值)?(即弹出三个参数?)

EDIT2:正如 Rob 所证实的,第二个问题的答案是肯定的。如果我想在堆栈上留下一个参数,我将不得不重述 __stdcall:

0 投票
2 回答
4797 浏览

assembly - 如何将 NASM“推送字节”转换为 GAS 语法?

我正在将 NASM 源“移植”到 GAS,我发现了以下代码行:

GAS 不允许“push byte”或“pushb”。

我应该如何将上面的代码翻译成 GAS 语法?

谢谢

0 投票
6 回答
33656 浏览

c++ - C++ 中的堆栈损坏

在 C++ 中,堆栈可能会以何种方式损坏。我猜的一种方法是通过访问超出其边界的数组来覆盖堆栈变量。有没有其他方法可以破坏它?

0 投票
6 回答
7604 浏览

c# - 为什么必须使用非默认构造函数初始化 C# 结构中的所有字段?

我想试试这段代码:

但是它在编译时失败了,我知道 struct 需要初始化它的所有字段。但我试图了解 CLR\IL 引擎盖下会发生什么。为什么它需要在任何其他方法\属性\这个等之前的所有字段。

谢谢。

0 投票
3 回答
1730 浏览

c++ - 基于堆栈的回文检查器

我的程序有问题。它应该是通过堆栈识别回文的程序。一切都很好,唯一不起作用的是在功能完成后打印堆栈(原始和反向)。这是我的整个代码,问题在于案例 d 和 e:

0 投票
6 回答
2019 浏览

windows - 调用_freea 真的有必要吗?

我正在使用 DevStudio 在 C/C++ 非托管的 Windows 上进行开发。

我想在堆栈而不是堆上分配一些内存,因为我不想手动释放该内存(我知道智能指针和所有这些东西。我需要一个非常具体的内存分配案例处理),类似于使用 A2W() 和 W2A() 宏。

_alloca这样做,但它已被弃用。建议改用malloca。但是 _malloca 文档说每次调用 _malloca 都必须调用 ___freea。然后它破坏了我使用 _malloca 的目的,我将使用 malloc 或 new 代替。

任何人都知道我是否可以不调用 _freea 而不会泄漏以及内部影响是什么?

否则,我最终将只使用已弃用的 _alloca 函数。