Questions tagged «stack»

堆栈是后进先出(LIFO)抽象数据类型和数据结构。对于有关调用堆栈的问题,请改用[callstack]或[stack-pointer]。对于有关Haskell构建工具的问题,请改用[haskell-stack]。对于有关C ++中标准堆栈的问题,请改用[stdstack]。

8
数组,堆和堆栈以及值类型
int[] myIntegers; myIntegers = new int[100]; 在上面的代码中,是否是new int [100]在堆上生成数组?根据我通过c#进行的CLR阅读,答案是肯定的。但是我不明白的是,数组内部的实际int发生了什么。因为它们是值类型,所以我想必须将它们装箱,例如,我可以将myIntegers传递给程序的其他部分,如果一直将它们留在程序中,则会使堆栈混乱。还是我错了?我猜想它们会被装箱,并且只要数组存在就可以在堆中生存。
134 c#  arrays  memory  stack  heap 

10
Android:清除活动堆栈
我的应用程序中有几个活动。而且流程非常复杂。当我单击注销应用程序时,导航到登录屏幕,然后用户可以通过取消按钮(调用system.exit(0))退出 当我退出或返回按钮时,系统从堆栈中调用一个活动:(当我进入“登录”屏幕时,如何清除堆栈中的所有活动?调用finish()是不实际的,因为有太多活动,并且某些活动不应在关闭时关闭它们是活动的,例如本地相机调用活动。 validateuser logoutuser = new validateuser(); logoutuser.logOut(); Intent loginscreen = new Intent(homepage.this, Login2.class); (homepage.this).finish(); loginscreen.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY); startActivity(loginscreen);

11
堆栈和队列之间的基本区别是什么?
堆栈和队列之间的基本区别是什么? 请帮助我,我找不到区别。 您如何区分堆栈和队列? 我在各个链接中搜索了答案,然后找到了答案。 在高级编程中 堆栈定义为元素的列表或序列,可通过在现有元素的“顶部”放置新元素来加长,并通过从现有元素的顶部删除元素来缩短。它是一种ADT [Abstract Data Type],其数学运算为“ push”和“ pop”。 队列是一系列元素,可以通过将新元素放置在现有元素的后面来添加元素,并通过移除队列前面的元素来缩短元素。它是ADT [抽象数据类型]。这些术语在Java,C ++,Python等的编程中还有更多理解。 我可以得到更详细的答案吗?请帮我。
130 stack  queue 

8
Java / Android-如何打印完整的堆栈跟踪?
在Android(Java)中,如何打印完整的堆栈跟踪记录?如果我的应用程序因nullPointerException或其他原因而崩溃,它将打印出(几乎)完整的堆栈跟踪,如下所示: java.io.IOException: Attempted read from closed stream. com.android.music.sync.common.SoftSyncException: java.io.IOException: Attempted read from closed stream. at com.android.music.sync.google.MusicSyncAdapter.getChangesFromServerAsDom(MusicSyncAdapter.java:545) at com.android.music.sync.google.MusicSyncAdapter.fetchDataFromServer(MusicSyncAdapter.java:488) at com.android.music.sync.common.AbstractSyncAdapter.download(AbstractSyncAdapter.java:417) at com.android.music.sync.common.AbstractSyncAdapter.innerPerformSync(AbstractSyncAdapter.java:313) at com.android.music.sync.common.AbstractSyncAdapter.onPerformLoggedSync(AbstractSyncAdapter.java:243) at com.google.android.common.LoggingThreadedSyncAdapter.onPerformSync(LoggingThreadedSyncAdapter.java:33) at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:164) Caused by: java.io.IOException: Attempted read from closed stream. at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:148) at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:159) at java.util.zip.GZIPInputStream.readFully(GZIPInputStream.java:212) at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:81) at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:64) at android.net.http.AndroidHttpClient.getUngzippedContent(AndroidHttpClient.java:218) at com.android.music.sync.api.MusicApiClientImpl.createAndExecuteMethod(MusicApiClientImpl.java:312) …

9
如何增加Java堆栈大小?
我问了这个问题,以了解如何增加JVM中的运行时调用堆栈大小。我已经找到了答案,并且还获得了许多有用的答案和注释,这些注释和注释与Java如何处理需要大量运行时堆栈的情况有关。我在回答摘要中扩展了我的问题。 最初,我想增加JVM堆栈的大小,以便程序运行时无需安装StackOverflowError。 public class TT { public static long fact(int n) { return n < 2 ? 1 : n * fact(n - 1); } public static void main(String[] args) { System.out.println(fact(1 << 15)); } } 相应的配置设置是java -Xss...具有足够大值的命令行标志。对于TT上面的程序,它可以与OpenJDK的JVM一起工作: $ javac TT.java $ java -Xss4m TT 答案之一还指出,这些-X...标志与实现有关。我在用 java version "1.6.0_18" OpenJDK …

10
在C ++中正确使用堆栈和堆?
我已经编程了一段时间了,但主要是Java和C#。我从来没有真正需要自己管理内存。我最近开始用C ++进行编程,对于何时将内容存储在堆栈上以及何时将它们存储在堆上,我有些困惑。 我的理解是,经常访问的变量应该存储在堆栈和对象中,很少使用的变量以及大型数据结构都应该存储在堆中。这是正确的还是我不正确的?

30
设计一个堆栈,使getMinimum()应该为O(1)
这是面试问题之一。您需要设计一个包含整数值的堆栈,以便getMinimum()函数应返回堆栈中的最小元素。 例如:考虑以下示例 情况1 5->顶部 1个 4 6 2 调用getMinimum()时,它应返回1,这是最小元素 在堆栈中。 情况#2 stack.pop() stack.pop() 注意:5和1都从堆栈中弹出。所以之后,堆栈 好像, 4->顶部 6 2 调用getMinimum()时应返回2,这是 堆栈。 食用者: getMinimum应该返回O(1)中的最小值 在设计时还必须考虑空间约束,如果使用额外的空间,则它应该是恒定的空间。

6
C / C ++程序的最大堆栈大小
我想在100 X 100的阵列上做DFS。(数组的表示元素代表图形节点)因此,假设情况最糟,递归函数调用的深度可能会达到10000,而每次调用最多会占用20个字节。那么可行的方法是否有可能发生堆栈溢出? C / C ++中的最大堆栈大小是多少? 请同时为以下两者指定gcc: 1)Windows上的cygwin 2)Unix 一般限制是什么?
115 c++  c  stack 

8
将DIV堆叠在一起?
是否可以堆叠多个DIV,例如: <div> <div></div> <div></div> <div></div> <div></div> </div> 这样所有这些内部DIV都具有相同的X和Y位置?默认情况下,它们都相互降低,从而将Y位置增加最后一个上一个DIV的高度。 我感觉某种漂浮物或展示物或其他技巧可能会咬人? 编辑:父DIV具有相对位置,因此,使用绝对位置似乎不起作用。
115 css  html  stack  css-float 


2
如何从Delphi程序或编译器生成的调试信息中提取局部变量信息(地址和类型)?
我的目标是: 给定Delphi编译的32或64位Windows程序中的挂起线程,可以遍历堆栈(可行) 给定堆栈条目,以枚举每种方法中的局部变量及其值。也就是说,至少要找到它们的地址和类型(整数32/64 /有符号/无符号,字符串,浮点数,记录,类...),可以将它们的组合用于查找其值。 第一个很好,这是这个问题的第二个。从高层次上讲,如何在Delphi中给定堆栈条目的情况下枚举局部变量? 从低层次看,这就是我一直在研究的内容: RTTI:未列出有关方法的此类信息。我实际上从未想到过这是一个现实的选择,但无论如何都要在此处列出。 调试信息:加载为调试版本生成的调试信息。 地图文件:即使是详细的地图文件(一种文本格式的文件!打开其中的文件并查看)也不包含局部变量信息。它基本上是地址和源文件行号的列表。非常适合地址与文件和线的关联,例如装订线中的蓝点;不太适合获得更详细的信息 远程调试信息(RSM文件)- 关于其内容或格式的未知信息。 TD32 / TDS文件:我目前的研究方向。它们包含许多其他信息中的全局和局部符号。 我在这里遇到的问题是: 没有TD32文件格式的文档(我可以找到。) 我对它们的大部分了解都来自使用它们的Jedi JCL代码(JclTD32.pas),我不确定如何使用该代码,或者不确定其中的结构是否足够广泛以显示本地var。我很确定它将处理全局符号,但是我对局部符号不确定。我定义了各种各样的常量,并且没有格式的文档,要阅读它们的含义,我在猜测。但是,这些常量及其名称必须来自某个地方。 我可以使用TDS信息找到的源无法加载或处理本地符号。 如果这是正确的方法,那么这个问题将变成“是否存在有关TDS / TD32文件格式的文档,并且是否有任何代码示例加载局部变量?” 代码示例不是必不可少的,但即使非常少也可能非常有用。


2
为什么C#中的堆栈大小恰好是1 MB?
当今的PC具有大量的物理RAM,但对于32位进程,C#的堆栈大小仅为1 MB,对于64位进程,C#的堆栈大小仅为4 MB(C#中的堆栈容量)。 为什么CLR中的堆栈大小仍然如此有限? 为什么是1 MB(4 MB)(而不是2 MB或512 KB)呢?为什么决定使用这些金额? 我对该决定背后的考虑和原因感兴趣。
102 c#  stack  clr  stack-size 


10
为什么堆栈通常会向下生长?
我知道在我个人熟悉的体系结构(x86、6502等)中,堆栈通常会向下增长(即,推入堆栈的每个项目都会导致SP递减,而不是递增的SP)。 我想知道这样做的历史依据。我知道在统一的地址空间中,在数据段的另一端(例如)启动堆栈很方便(因此,如果两侧在中间发生碰撞,则只有一个问题)。但是,为什么堆栈通常会占据顶部呢?特别是考虑到这与“概念”模型相反的情况? (请注意,在6502架构中,即使堆栈绑定到单个256字节页面,堆栈也向下增长,并且这个方向选择似乎是任意的。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.