问题标签 [stack-memory]

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.

0 投票
1 回答
763 浏览

c# - 什么时候在栈上分配一个固定大小的数组?

我有以下方法将字节从套接字流复制到磁盘:

我比较好奇的是:会buffer分配在栈上还是堆上?可以肯定的是,我可以使此方法不安全,并将fixed关键字添加到变量声明中,但如果我不必这样做,我不想这样做。

0 投票
2 回答
7170 浏览

c++ - 堆与数据段与堆栈分配

我正在查看以下程序,但不确定内存是如何分配的以及为什么:

在上面的代码中,最后一个显然是在堆中。但是,据我了解text2,它位于程序的数据段中,并且text1可能位于堆栈中。还是我的假设是错误的?这里正确的假设是什么?这个编译器依赖吗?

0 投票
5 回答
259 浏览

c - C变量分配时间和空间

如果我有一个带有以下内容的 test.c 文件

因此,如果我必须在 while 循环中使用其中一个变量,那么首选哪一个?

也许我在这里有点含糊,但我想知道时间/空间分配的差异是否真的相关。

0 投票
2 回答
272 浏览

linux - How does the amount of memory for a process get determined?

From my understanding, when a process is under execution it has some amount of memory at it's disposal. As the stack increases in size it builds from one end of the process (disregarding global variables that come before the stack), while the heap builds from another end. If you keep adding to the stack or heap, eventually all the memory will be used up for this process.

How does the amount of memory the process is given get determined? I can only imagine it depends on a bunch of different variables, but an as-general-as-possible response would be great. If things have to get specific, I'm interested in linux processes written in C++.

0 投票
1 回答
286 浏览

multidimensional-array - C++/CLI 中二维数组的内存不足?

我正在处理 10 个数组,其中一些是双精度 1024x1392。

我试图在堆上动态分配它们:

但我仍然收到错误说

和 106 是我开始在上面的代码中初始化数组的地方:

我真的空间不足,还是我做错了什么?

0 投票
2 回答
397 浏览

c# - 将 byte* 传递给 Stream.Read(byte[], int, int)

.NET 函数 Stream.Read() 将 byte[] 作为参数。有没有办法我可以通过 stackalloc'd byte* 代替?这将使我不必进行额外的堆分配,从而节省垃圾收集的时间。这个函数很短,被反复调用。

0 投票
3 回答
1938 浏览

static - 静态对象与基于堆栈和堆的对象

我遇到了以下定义:

static对象是从构造和创建到程序结束一直存在的对象。因此,基于堆栈和堆的对象被排除在外。静态对象在程序退出时被销毁,即它们的析构函数在main执行完成时被调用。

为什么排除基于堆栈和堆的对象???

以下是我对堆栈和堆的了解: 堆栈是系统内存的一部分,在运行时之前存储所有变量。堆是系统内存的一部分,在运行时存储所有变量,例如动态分配的内存。这意味着如果我i在我的代码中声明一个整数变量并将 say 的值分配123给它,那么它将存储在我的堆栈中,因为编译器在编译时(运行时之前)知道该值。但是如果我定义了一个指针变量并想在其他地方初始化它,那么它将存储在我的堆中,因为编译器在编译时不知道它。

0 投票
1 回答
964 浏览

memory - 是否有在线/独立计算机模拟器/演示程序?

我希望能够让学生了解在现代计算机中程序执行过程中究竟发生了什么——例如内存地址、引用、堆栈、堆等的使用。

理想情况下,我希望他们能够玩某种演示,其中运行一个简单的应用程序(例如计算器、基本数据库等)并且可以暂停,并且运行程序的机器的状态在相当低的级别上查看通过“漂亮”的 GUI。

这样的应用程序存在吗?如果没有,任何超级程序员可以就编写这样的软件的可行性提出建议吗?目标受众可能是学习现代 OO 语言(C#,最好是 Java)的一年级 Comp Sci 学生。

编辑:

我以为这已经凉了,但是今天有人发帖了,所以我想我最好更新一下...

我可能应该在这个问题中加入“图灵”和“机器”这两个词。我想人们以为我想调试 Windows 或其他东西,而实际上我只是在考虑 TM。这是一个相当不错的模拟器,尽管按照今天的标准来说并不漂亮。

如果有人知道其他任何人,我会很感激你发布一个链接。谢谢。

0 投票
2 回答
539 浏览

c++ - 堆/堆栈的 C++ 标准术语

关于应该使用的术语似乎存在一些不确定性。似乎有两种不同的观点:

  1. 有些人更喜欢使用堆和堆栈来表示字节的位置
  2. 其他人坚持认为那些“堆”和“堆栈”术语不应该在 C++ 中使用,而是更喜欢“自动存储持续时间”术语。

但显然,程序员使用一套术语,而标准使用另一套。但是应该使用什么术语呢?为什么?仍然存在他们的意思不同的问题吗?但是,在 freenode 的##C++ 通道中使用堆栈/堆术语时,似乎一直存在分歧。我们现在已经得出了持续时间!=位置的结论,但我们仍然应该确定首选术语是什么。

0 投票
1 回答
33170 浏览

c# - c#中的堆栈和堆

可能重复:
堆栈和堆是什么以及在哪里

在 C# 中,堆和栈是有区别的。我刚刚意识到我一直认为堆栈是 RAM,而堆是硬盘驱动器。但现在我不确定它是否正确。如果不是,那么将它们存储在一个地方有什么区别?