stack相关内容

解释堆栈如何在 C 中工作

我只是想简单解释一下将数据推送到堆栈时的链接过程.我知道如何使用我书中的代码进行构建,但我不确定我是否理解当您将堆栈头链接从一个移动到下一个时该过程是如何工作的. 对于像这样的堆栈: typedef 结构节点{无效数据点;结构节点*链接;}STRUCT_NODE;类型定义结构{整数计数;STACK_NODE* 顶部;}堆; 如何更改链接以指向推送到堆栈上的新数据.我也不知道 解决方 ..
发布时间:2022-01-22 12:55:27 其他开发

LTE栈协议开发

在阅读有关 LTE 的文章时,我遇到了一个术语“LTE 堆栈协议开发".遗憾的是,没有关于该术语的进一步解释,当我在 google 上查找时,它出现了 LTE 协议开发领域的所有职位空缺. 所以这里有一个问题,“LTE 堆栈协议开发"到底是什么,如果可能的话,我想了解更多关于它的信息,有人可以给我一些好的阅读材料,它可以是一本书或网站. 基本上,我想知道其中的“内容和方式"部分.我所说 ..
发布时间:2022-01-22 12:55:18 其他开发

离开 x86 NASM 汇编语言中的函数时,堆栈是否会自动弹出?

例如让我们进入一个函数... push ebp ;保存 ebpmov ebp, esp ;将esp存入ebpsub esp, 4 ;将四个字节保存到堆栈中 然后退出函数... mov esp, ebp ;恢复esp的保存值pop ebp ;从栈中恢复 ebp 的值 (是的,我知道我可以使用进入和离开,但我更喜欢这种方式.) 我的问题是,当 esp 恢复时,堆栈上的四字节变量是被弹出还 ..
发布时间:2022-01-22 12:55:05 其他开发

用完 ValueType 堆栈空间

我的理解是 .Net 中的每个新线程都会分配 1MB 的堆栈空间.进一步我的理解是值类型存储在堆栈而不是堆中...... 所以我的问题是这样的;这种行为是否意味着任何 ValueType 变量声明都被限制为 1MB 的存储空间?您在当前范围内声明的 ValueType 越多,调用堆栈可以有效地越小,这是否意味着声明(为了论证)~260,000 个整数将使用您的所有堆栈空间? 解决方案 ..
发布时间:2022-01-22 12:54:57 C#/.NET

使用单个堆栈生成排列

任何人都可以解释算法以在仅使用单个堆栈时生成可能的排列,并且推送和弹出是唯一允许的操作.搜索了很多,但没有明确的答案.这种排列的总数也由加泰罗尼亚数字给出.但我没有得到证明.请尽可能解释一下. 谢谢!! 解决方案 这个问题使用了一个输入队列和一个输出队列以及一个栈. 操作是“将一个项目从输入队列推入堆栈"和“将一个项目从堆栈弹出到输出队列". 1 2 3输出输入\/ 例如 ..
发布时间:2022-01-22 12:54:38 其他开发

ARM GCC 生成函数序言

我提到 ARM 工具链可以生成不同的函数序言.实际上,我看到两个 obj 文件(vmlinux)具有完全不同的功能序言: 第一种情况如下: push {some registers maybe, fp, lr} (lr ommited in leaf function) 第二种情况如下: push {some registers may, fp, sp, lr, pc}(我可能会混淆顺 ..
发布时间:2022-01-22 12:54:27 其他开发

如何显示 Erlang 调用堆栈?

我需要调试外部系统中的一些模块.该模块具有公共函数 foo() - 我怎么知道位置(模块和函数名称)从哪个 foo() 给定模块被调用?我的意思是调用堆栈. 我无法停止系统,我可以通过重新加载此模块来完成所有工作(但需要一些调试信息). -module(给定).-出口(foo/0).foo() ->%% 这是我的调试 - 和%% 我需要在这里(!)知道 unknown_module:unk ..
发布时间:2022-01-22 12:54:21 其他开发

为什么 pop() 应该接受一个论点?

快速背景 我是一名 Java 开发人员,在空闲/无聊的时候一直在玩 C++. 前言 在 C++ 中,您经常会看到 pop 通过引用获取参数: void pop(Item& 移除); 我知道用您删除的内容“填充"参数很好.这对我来说完全有道理.这样,要求删除顶部项目的人可以查看已删除的内容. 但是,如果我要在 Java 中执行此操作,我会执行以下操作: Item pop() 抛 ..
发布时间:2022-01-22 12:54:03 Java开发

调用_freea 真的有必要吗?

我正在使用 DevStudio 在 Windows 上以非托管的 C/C++ 进行开发. 我想在堆栈而不是堆上分配一些内存,因为我不想手动释放该内存(我知道智能指针和所有这些东西.我有一个非常具体的内存案例我需要处理的分配),类似于使用 A2W() 和 W2A() 宏. _alloca 会这样做,但已被弃用.建议改用 malloca.但是 _malloca 文档说每次调用 _mallo ..
发布时间:2022-01-22 12:53:57 其他开发

推一个 Lua 表

我已经在 C 中创建了一个 Lua 表,但我不确定如何将该表推送到堆栈顶部,以便将其传递给 Lua 函数. 有人知道怎么做吗? 这是我当前的代码: lua_createtable(state, libraries.size(), 0);int table_index = lua_gettop(state);for (int i = 0; i 解决方案 这里有一个快速帮助函数将字 ..
发布时间:2022-01-22 12:53:26 C/C++开发

某个程序的堆栈内存有多大,是否有任何编译器标志可以设置它?

正如标题所述:关于堆栈大小是否有任何一般的“经验法则".我猜大小会因操作系统、架构、缓存大小、可用 RAM 大小等而有所不同. 但是一般来说可以说什么,或者有什么方法可以找出,这个程序允许使用多少堆栈?.作为一个额外的问题,是否有任何方法(使用编译器标志等(这里主要考虑 C/C++,但也更通用))堆栈的大小可以由用户设置为固定大小? 顺便说一句,我完全出于好奇而问,我没有堆栈溢出.:) ..
发布时间:2022-01-22 12:53:20 C/C++开发

如何在C#中删除不在堆栈顶部的堆栈项

不幸的是,一个项目只能通过“pop"从堆栈中删除.堆栈没有“删除"方法或类似的东西,但我有一个堆栈(是的,我需要一个堆栈!),我需要从中删除一些元素. 有什么诀窍吗? 解决方案 如果您需要删除不在顶部的项目,那么您需要的不是堆栈. 尝试从列表中实现您自己的堆栈.然后您可以实现自己的推送和弹出功能(添加和删除列表),以及您自己的特殊 PopFromTheMiddle 功能. ..
发布时间:2022-01-22 12:52:50 C#/.NET

在 Eclipse 中导航 Java 调用堆栈

在像 GDB 这样的调试器中,当你在断点处停止时,你可以轻松地向上移动调用堆栈并检查相关的源和堆栈帧数据. 你如何在 Eclipse 中做到这一点? 解决方案 在"调试透视图",显示名为“调试"的视图.对于当前暂停的每个线程,此视图显示完整的调用堆栈.单击此堆栈的一个元素会切换编辑器视图以显示相应的类,“变量"视图将显示此堆栈元素的变量. ..
发布时间:2022-01-22 12:52:44 Java开发

您可以在 C# 中获取堆栈上的变量列表吗?

所有,只是想知道是否可以在 .NET/C# 中获取堆栈上的变量列表及其值?我正在为我的应用程序创建一个异常处理程序,除了标准堆栈跟踪之外,我还希望查看堆栈上任何变量的名称和值.知道这是否可以做到吗? 解决方案 是的,StackFrame 类可以帮助您. 链接 类似的东西 var currentStackFrame = new StackFrame(1);var props = ..
发布时间:2022-01-22 12:52:34 C#/.NET

x86_64 对齐堆栈并在不保存寄存器的情况下恢复

我正在为 x86_64 编写中断处理例程.ABI 规定,在调用 C 函数之前,我必须将堆栈对齐到 16 个字节.x86_64 ISA 指定在进入 ISR 时,我的堆栈是 8 字节对齐的.因此,我需要将堆栈指针对齐到 16 个字节.问题是从我的 C 函数返回时,我必须恢复(可能)未对齐的堆栈指针,以便我可以正确地从中断中返回. 我想知道是否有办法在不使用通用寄存器的情况下做到这一点? 解 ..
发布时间:2022-01-22 12:52:27 其他开发

完成活动前开始的所有活动

我想完成应用程序中正在运行的所有活动意味着想从堆栈中删除所有父活动. 我想在我的应用程序中本地实现注销功能,所以我的想法是,我将完成之前开始的所有活动,然后再次开始登录活动.. 解决方案 我应该让你知道这不是 android 推荐的行为,因为你应该让自己管理活动的生命周期. 但是如果你真的需要这样做,你可以使用 FLAG_ACTIVITY_CLEAR_TOPp> 我在这里给你 ..
发布时间:2022-01-22 12:52:10 移动开发

C 中的异常处理 - setjmp() 返回 0 有什么用?

我有几个关于 setjmp/longjmp 使用的问题 - setjmp(jmp___buf stackVariables)返回0有什么用.这是默认值,我们无法影响. setjmp(stackVariables)的唯一意义就是在stackVariables中压栈.基本上 0 告诉我们堆栈是否成功推送到 stack_variables 上. 当您从 longjmp 返回时,它们是非 ..
发布时间:2022-01-22 12:52:01 其他开发