102得票17回答
汇编语言中的堆栈是如何工作的?

我目前正在尝试理解堆栈的工作原理,因此决定自学一些汇编语言,我正在使用这本书: http://savannah.nongnu.org/projects/pgubook/ 我正在使用 Gas 并在 Linux Mint 上进行开发。 有一点让我感到困惑: 据我所知,堆栈只是一种数据结构...

99得票7回答
Java基本类型数组存储在堆栈还是堆中?

我有一个这样的数组声明: var arr = [[1, 2], [3, 4], [5, 6]];int a[]; 这里的a是一个原始的int类型数组。这个数组存储在哪里?它存储在堆上还是栈上?由于这是一个原始类型的int数组,所有原始类型都不会存储在堆上。

89得票9回答
内存分配:栈 vs 堆?

我对栈(stack)和堆(heap)的内存分配基础概念感到困惑。按照标准定义(大家都说的那些东西),所有值类型(Value Types)都将被分配到栈(Stack)上,而引用类型(Reference Types)将放到堆(Heap)中。 现在考虑以下示例:class MyClass { ...

76得票23回答
为什么不在C++中全部使用指针?

假设我定义了一个类:class Pixel { public: Pixel(){ x=0; y=0;}; int x; int y; } 然后编写一些使用它的代码。为什么我要这样做?Pixel p; p.x = 2; p.y = 5; 作为一个Jav...

76得票4回答
Swift堆和栈的理解

我想了解在Swift中存储在栈和堆中的内容。我有一个大概的估计:所有打印出来并显示内存地址而非具体值的对象都存储在栈中,所有打印出来作为具体值的对象都存储在堆中,这基本上取决于值类型和引用类型。我的理解完全错误吗?如果可以的话,能否提供栈/堆的可视化表示?

71得票7回答
在堆栈/堆上创建对象?

以下代码在堆栈上创建一个对象:Object o; 在堆上创建对象时,我们可以使用:Object* o; o = new Object(); 改为:Object* o = new Object(); 当我们将堆对象创建拆分成两行,并在第二行调用构造函数(o = new object())时,这...

68得票6回答
当堆栈和堆发生冲突时会发生什么?

我很好奇当堆栈与堆发生冲突时会发生什么。如果有人遇到过这种情况,请解释一下情况。

63得票4回答
Java基本类型是存储在堆栈还是堆中?

我知道非原始类型(对象)被放置在堆上,而方法则被放置在栈上,但是原始类型的变量呢? --更新 根据回答,我可以说堆可以为给定对象有一个新的栈和堆吗?鉴于该对象将具有原始类型和引用变量..?

60得票4回答
堆栈内存的大小

可能是重复问题: 什么是堆和栈?它们在哪里? 关于 c 程序中的内存布局基本概念,我了解到: 该语言使用两个主要的数据结构栈(stack)和堆(heap)。 栈被创建用于存储子例程的本地变量和书记数据。 堆被创建用于存储程序动态分配的变量。 堆的长度是可变的。(对于栈不太确...

56得票4回答
如何在C语言中在堆栈上创建一个结构体?

我知道如何使用malloc在堆上创建一个struct。但是我正在寻找有关在C中在堆栈上创建struct的文档,但所有文档似乎都只涉及在堆上创建struct。