8得票3回答
如何在C#.Net中查看堆栈内部的对象

在每一行执行之后是否能够看到堆栈和堆的内容?我想看到这些内容,因为它会清楚地说明.Net中的内存分配和释放。如果有任何文件或链接可以澄清我的疑虑,请分享。

7得票3回答
JVM如何知道方法栈中变量的位置?

这个问题可能有点傻,或者可能是一个重复的问题。我对程序引用变量时如何从堆栈中检索变量感到困惑。 一个对象存储在堆中,其位置存储在引用变量中,并且包含堆地址的引用变量本身存储在堆栈中。但是JVM如何找出该引用变量存储在堆栈的哪个位置。 为了澄清我的疑惑,让我们考虑以下示例。 Class Tes...

8得票1回答
堆栈保护和堆栈溢出保护 - 哨兵、内存。

我有几个关于Stack Guard和SSP保护的问题。第一个问题是关于Stack Guard及其三种canaries的,如果我没记错的话——终止符、随机数和随机XOR。 我想知道如何在x86 Linux系统上禁用Stack Guard?我在某个地方读到,可以使用这个命令,在使用gcc编译时...

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

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

8得票2回答
如何在Rust中测量函数的堆栈使用情况?

有没有办法测量一个函数使用了多少堆栈内存? 这个问题不仅仅适用于递归函数;然而我很想知道一个被递归调用的函数需要多少堆栈内存。 我想要优化函数的堆栈内存使用;但是,如果不知道编译器已经做了哪些优化,那么这只是瞎猜是否会有真正的改进。 明确一点,这不是关于如何优化更好地使用堆栈的问题。 ...

9得票1回答
本地变量导致Linux进程栈溢出问题(堆栈保护)

来自 什么是_chkstk()函数的目的?: 在栈的末尾,有一个守卫页面映射为不可访问的内存 -- 如果程序访问它(因为它试图使用比当前映射的更多的栈),就会发生访问冲突。 _chkstk() 是一个特殊的编译器辅助函数,它 确保本地变量有足够的空间 即它正在进行一些堆栈探测(...

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

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

8得票1回答
Linux上的堆栈起始位置

我认为可以通过获取main函数中变量的地址并向上取整到页面边界来获得我的进程堆栈的起始位置(考虑到我的堆栈是向下增长的)。 我将此与/proc/self/maps报告的边界进行比较,它总是偏移1、2或3页(每页4096字节),从未有不同的偏移。差异随着每次运行而变化,并且以下C程序在使用的管...

12得票2回答
返回栈变量?

所以,我一直对 C++ 指针和...另一个被称为什么的东西有点困惑。比如说,Object* pointer = new Object(); 对比。Object notpointer(); 我知道指针可能与第二个有关,但基本上不是指针。(它实际上叫什么?) 此外,我相信对于第一个,你必须调用de...

10得票2回答
Windows汇编堆和栈?

操作系统:Windows 7 32位 在C++中,有堆和栈。但是最近我开始学习汇编语言,却没有看到这样的东西,只有一个栈,看起来就像纯粹的内存。那么,堆和栈是特定于C++和其他语言的实现吗?还是在汇编中仍然会分配堆和栈?启动可执行文件时,Windows在分配进程内存方面做了什么?进程如何知道...