问题标签 [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++ 堆栈分配
在学习 C++(和 C)时,我对堆栈分配的工作有一些特别的疑问,我找不到解决方案:
堆栈分配是否隐式调用 malloc/free 函数?如果不; 它如何确保堆栈分配和堆分配之间没有冲突?
如是; C++ 中的堆栈分配是否也隐式调用 new/delete?如是; 重载类的新运算符会影响其堆栈分配吗?
它在 VC++ 中产生了令人困惑的结果;但由于 VC++ 并不完全符合标准(或者我听说过),我决定我最好在这里问...
stack - 堆喷射,堆溢出,堆溢出有什么区别?
堆喷射,堆溢出,堆溢出有什么区别?
这些术语可以用缓冲区喷射、缓冲区溢出、缓冲区溢出代替吗?
它们也有相同的定义吗?
iphone - 我应该避免在 iPhone 上递归吗?
我应该避免使用在 iPhone 上运行的代码进行递归吗?
或者换一种说法,有人知道 iphone 上的最大堆栈大小吗?
c++ - 使用 __stdcall 和损坏的堆栈 (C++) 进行思想实验
今天脑子里一直在想函数指针这个话题,脑子里想到了以下场景:
AFAIK 这段代码会破坏堆栈,那么如果我运行这段代码,我会看到哪些类型的问题?
我会做这个调查自己,但是我已经离开我的开发机器一周了。
编辑:等一下,我想多了。正如评论中所观察到的那样,这段代码的目的是在所有事情都说完后在堆栈上留下一个参数(调用者将两个参数放在堆栈上,被调用者 - 只需要一个参数 - 只弹出一个)。然而,由于我的演员没有提到调用约定,我是否抛弃了 stdcall,至少从调用者的角度来看?int function(int)仍然会从堆栈中弹出一个参数,但是调用者是否会因为转换而恢复认为该函数是 __cdecl (默认值)?(即弹出三个参数?)
EDIT2:正如 Rob 所证实的,第二个问题的答案是肯定的。如果我想在堆栈上留下一个参数,我将不得不重述 __stdcall:
assembly - 如何将 NASM“推送字节”转换为 GAS 语法?
我正在将 NASM 源“移植”到 GAS,我发现了以下代码行:
GAS 不允许“push byte”或“pushb”。
我应该如何将上面的代码翻译成 GAS 语法?
谢谢
c++ - C++ 中的堆栈损坏
在 C++ 中,堆栈可能会以何种方式损坏。我猜的一种方法是通过访问超出其边界的数组来覆盖堆栈变量。有没有其他方法可以破坏它?
c# - 为什么必须使用非默认构造函数初始化 C# 结构中的所有字段?
我想试试这段代码:
但是它在编译时失败了,我知道 struct 需要初始化它的所有字段。但我试图了解 CLR\IL 引擎盖下会发生什么。为什么它需要在任何其他方法\属性\这个等之前的所有字段。
谢谢。
c++ - 基于堆栈的回文检查器
我的程序有问题。它应该是通过堆栈识别回文的程序。一切都很好,唯一不起作用的是在功能完成后打印堆栈(原始和反向)。这是我的整个代码,问题在于案例 d 和 e:
windows - 调用_freea 真的有必要吗?
我正在使用 DevStudio 在 C/C++ 非托管的 Windows 上进行开发。
我想在堆栈而不是堆上分配一些内存,因为我不想手动释放该内存(我知道智能指针和所有这些东西。我需要一个非常具体的内存分配案例处理),类似于使用 A2W() 和 W2A() 宏。
_alloca这样做,但它已被弃用。建议改用malloca。但是 _malloca 文档说每次调用 _malloca 都必须调用 ___freea。然后它破坏了我使用 _malloca 的目的,我将使用 malloc 或 new 代替。
任何人都知道我是否可以不调用 _freea 而不会泄漏以及内部影响是什么?
否则,我最终将只使用已弃用的 _alloca 函数。