14得票2回答
什么是参数推送顺序?

我正在学习汇编语言。什么是参数推送顺序?我知道这是如何将参数推送到堆栈中,但是“左侧”和“右侧”的含义是什么?相对于什么的左侧或右侧?还是这只与命令的语义书写方式有关,例如:mov ebp, esp ;esp is moved into ebp, right to le...

14得票7回答
.NET 中的堆栈与堆的区别

在您实际的编程经验中,堆栈和堆内存的知识究竟能否在现实生活中对您产生帮助?有没有来自实战的故事可以分享?或者这个概念只适用于填满编程书籍和理论上的讨论?

14得票3回答
C语言运行需要堆和栈吗?

人们谈论堆栈和堆之间的区别。但我很好奇,如果CPU不支持堆栈和堆结构,那么C语言是否可以在没有堆栈和堆的情况下正常运行?

14得票2回答
为什么这个函数序言中没有"sub rsp"指令,而函数参数存储在负rbp偏移量处?

通过阅读一些内存分段文档,我了解到:当调用函数时,有几个指令(称为函数序言)会将帧指针保存在堆栈上,将堆栈指针的值复制到基本指针中,并为局部变量保留一些内存。 这是我正在尝试使用GDB调试的一个简单代码:void test_function(int a, int b, int c, int ...

13得票3回答
垃圾回收 - 根节点

我最近阅读了关于垃圾回收的一些文章(主要是针对Java),但仍有一个问题未解答:JVM(或运行时系统)如何跟踪当前活动对象? 我理解这些对象是当前在堆栈上的对象,即所有局部变量或函数参数,这些都是对象。但这种方法的问题在于,每当运行时系统检查堆栈上的当前内容时,它如何区分引用变量和简单的整型...

13得票4回答
变量引用被分配在堆栈还是堆中?

我有一个问题 当我在方法内声明一个变量时会发生什么,例如: void myMethod() { Ship myShip = new Ship(); } myShip引用是分配在栈中还是堆中? 我认为是在栈中,但我感到困惑,因为我在阅读J2ME游戏编程书时看到过这样的描述:"...

13得票5回答
C# 结构体/类 堆栈/堆 控制?

在C++中,如果要将一个类/结构体分配到堆上,可以使用new,如果要放在栈上,则不要使用new。 在C#中,我们始终使用new关键字来分配内存,具体是分配到堆还是栈上取决于它是一个结构体还是一个类(结构体被分配到栈上,类被分配到堆上) - 在某些应用程序中,当只有真正属于堆的对象被分配到堆时...

13得票7回答
C++中堆栈对象的shared_ptr

最近我一直在学习管理指针,并遇到了以下情况。 我正在为游戏视图实现一个模型/控制器类。我的视图将在模型中呈现事物。相当简单。在我的主函数中,我像这样实例化了所有三个对象:RenderModel m; m.AddItem(rect); // rect gets added just fine,...

13得票1回答
C#中的堆栈和堆

可能是重复问题: 堆和栈是什么,它们在哪里? C#中的堆与栈有所不同。我意识到我一直认为栈是内存而堆是硬盘。但现在我不确定这是否正确。如果不是,那么如果它们存储在同一个位置会有什么区别呢?

13得票3回答
堆内存和栈内存是如何管理、实现和分配的?

在C / C ++中,我们可以将变量,函数,类的成员函数和实例存储在堆栈或堆上。 它们是如何实现的?它们如何被管理(高层次)?gcc是否预先分配一块内存用于堆栈和堆,并在请求时分配?原始内存来自RAM吗? 一个函数能否被分配在堆上而不是堆栈上? 澄清 我真正询问的是堆栈和堆内存的实现和管理。 ...