28得票3回答
Java堆栈内存管理

我想知道以下程序中内存是如何分配的:public class MemoryClass { public static void main(final String[] args) { int i = 0; MemoryClass memoryClass...

27得票1回答
闭包中的变量存储在栈还是堆中?

就像以下代码: var foo = function() { var a = 1; // closure var return function() { // closure fun console.log(a); } }; var bar = foo...

27得票1回答
在Ruby中,堆栈上存储什么?

Ruby是否将所有内容都分配在堆上,还是有一些实例存储在栈上?我认为所有变量基本上都在栈上,并包含对堆上对象的透明引用。我的想法正确吗?这个实现是特定于某个版本的吗? 此外,如果情况是变量分配在栈上并仅包含隐藏指针,那么变量本身(忽略它们指向的对象)占用多少字节? 编辑: 之所以问这个问...

26得票6回答
在堆栈和堆上创建对象数组

考虑下面的代码:class myarray { int i; public: myarray(int a) : i(a){ } } 如何在堆栈上创建一个myarray对象的对象数组,以及如何在堆上创建一个对象数组?

26得票1回答
为什么x86-64 / AMD64 System V ABI要规定16字节的栈对齐?

我在不同的地方读到过这是出于“性能原因”,但我仍然想知道在哪些特定情况下16字节对齐可以提高性能。或者说,无论如何,为什么选择这样做。编辑: 我认为我用了一个误导人的方式来问问题。我不是在问为什么处理器使用16字节对齐的内存会更快,这已经在文档中解释得很清楚了。相反,我想知道强制实行16字节对...

25得票7回答
C++有无堆栈实现的版本?

C++ 标准并没有提及栈或堆,它们是实现特定的,这是事实。 虽然它们不是 C++ 标准的一部分,但我们仍然会使用它们,其使用频率高得就像它们是语言本身的一部分,并且必须考虑它们以便达到内存或性能的目的。 因此,我的问题是是否有未使用栈和堆的 C++ 实现?

24得票9回答
为什么你会想要在堆上分配内存而不是栈上?

可能重复: 何时最好使用堆栈而不是堆,反之亦然? 我已经阅读了一些关于堆栈与堆的其他问题,但它们似乎更关注堆/栈做什么,而不是为什么要使用它们。 对我来说,由于堆栈指针移动快(只需移动堆栈指针,而不是在堆中寻找空闲空间),而且在使用完分配的内存后无需手动释放它,因此几乎总是优先选择堆栈分配...

23得票5回答
如何使用glibc的字符串实现在堆栈上分配std :: string?

int main(void) { std::string foo("foo"); } 据我理解,上述代码使用默认分配器调用new。因此,即使std::string foo在堆栈上分配,foo内部缓冲区也是在堆上分配的。 我该如何创建完全在堆栈上分配的字符串?

23得票2回答
C++线程之间的内存共享

我刚接触C++中的多线程,并且试图清楚地了解线程之间内存如何共享/不共享。我正在使用C++11的std::thread。 根据我在其他SO问题上阅读到的信息,堆栈内存只属于一个线程,而堆内存是在线程之间共享的。因此,从我对堆栈和堆的理解来看,以下应该是正确的: #include <th...

23得票5回答
如何使用GDB探索堆栈/堆?

请问有没有人能够快速概述或者提供一些文档,告诉我如何检查C程序的堆栈(和堆)?我认为这应该使用GDB来完成,但如果有其他更简单的替代方案,那也可以。 谢谢。