问题标签 [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.
c++ - C/C++ 模式到 USE_HEAP 或 USE_STACK
有没有办法定义一个宏(或类似的东西),允许对象在堆栈或堆上干净地分配?
例如。当前代码:
最简单的建议可能如下,但正如您在下面看到的,维护 2 组代码并不是很干净。
我正在寻找可用于编译代码的设计模式/代理类,具体取决于客户的需求。
编辑:该代码用于为嵌入式设备/(嵌入式)Linux / Windows Mobile 构建库。大多数客户只想要基于堆栈的分配。其他一些人要求用堆栈换堆。
谢谢,查尔斯
c# - 如何在C#中删除不在堆栈顶部的堆栈项
不幸的是,一个项目只能通过“pop”从堆栈中删除。堆栈没有“删除”方法或类似的东西,但我有一个堆栈(是的,我需要一个堆栈!),我需要从中删除一些元素。
这样做有诀窍吗?
.net - 如何获取异常堆栈
我有一个 Winform 应用程序 (C#),它从 dll 导入一些函数。
有时在运行应用程序时,我会遇到以下异常:
System.AccessViolationException:试图读取或写入受保护的内存。这通常表明其他内存已损坏。
我在 AppDomain.CurrentDomain.UnhandledException 中捕获它。
但我看不到堆栈。我如何获得堆栈?
谢谢。
oracle - 是否有可能知道从哪个包调用了程序?
假设我有 2 个包:A 和 B。
在包 A 中,我调用包 B 中的过程。
在包 B 的过程中,是否有可能知道过程已从包 A 中调用?
非常感谢您提供这些信息。这很有启发性。
我很感激。
c++ - 线程安全的 C++ 堆栈
我是 C++ 新手,正在编写一个多线程应用程序,不同的编写者将对象推送到堆栈上,而读者将它们从堆栈中拉出(或至少将指针推送到对象)..
是否有任何内置于 C++ 中的结构可以在不添加锁定代码等的情况下处理这个问题?如果没有,那么 Boost 库呢?
编辑:
你好。感谢您最初的精彩回答。我想我认为这可能是内置的一个原因是我纯粹在 x86 空间中思考,并认为指针的 PUSH/POP 应该是指令级别的原子操作。
我不确定我最初的预感是否正确,但我想这不一定在所有平台上都是正确的。虽然如果在 x86 上运行,您是否将原子 PUSH 和 POP 放入堆栈,如果是,这是否实质上使其无锁?
recursion - 与使用堆栈相比,递归通常被认为是一种过时的遍历方法吗?
我一直在阅读一些人们选择使用堆栈而不是递归的地方。这是因为递归被视为完成工作的过时方式,还是两种方法在不同的环境中同样适用?
c++ - 运行时堆栈是否保存在内存的数据段中?
在我对后台发生的事情进行实验后,我对堆栈内存组织非常好奇,并且显然看到它与我从书本上获得的微小知识相匹配。只是想检查一下我的理解是否正确。
我有一个基本程序——有 2 个函数,第一个是 foo,另一个是 main(入口点)。
程序的输出如下图所示,main 的局部变量 i 完全位于不相关的位置。integer 是一种值类型,但使用 char * 本地指针再次检查它并获得类似的结果。
我主要了解代码和变量被分配到不同的内存段(代码段/数据段)。所以基本上可以说调用堆栈折叠有关函数执行的基本信息(它们的局部变量、参数、返回点)并将它们保存在数据段中吗?
c++ - 在 C 中返回堆栈数据;它是否正确取消分配?
我正在查看朋友的代码,并就 C/C++ 如何在堆栈上分配内存并管理其释放进行了有趣的辩论。如果我要在一个函数中创建一个包含 10 个对象的数组,但返回该数组,它是在函数弹出时释放(因此使给定数据无效)还是放入堆中(这引发了我们如何释放它?)。
示例代码如下:
非常感谢任何帮助,这变成了一个非常有趣的问题,我的朋友们,我无法回答。
java - 什么数据结构将在 LIFO 中保存有界的项目堆栈?
我正在寻找一种基本上是有界堆栈的数据结构。
如果我声明堆栈最多可以容纳 3 个项目,并且我将另一个项目推入,则最旧的项目将被弹出。