Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
我们如何访问堆栈变量而不弹出它们?
据我所知 C 中有两种变量 栈变量和堆变量 堆栈变量速度很快 并由编译器和 CPU 自动管理 我关于堆栈变量的问题是 堆栈变量真的存储在堆栈 FILO 数据结构中吗 如果是这样 为什么我们可以使用它们而不弹出它们并丢失它们的值 为什么要用栈
c
heapmemory
stackmemory
从函数返回“本地”char* 与从函数返回“本地”int* 之间的区别[重复]
这个问题在这里已经有答案了 可能的重复 局部变量的内存可以在其作用域之外访问吗 https stackoverflow com questions 6441218 can a local variables memory be access
c
string
heapmemory
stackmemory
C++ 中的全局变量是存储在堆栈、堆还是两者都不存储?
最初我很确定正确的答案一定是 都不是 因为全局变量存储在数据内存中 但后来我找到了 Robert Lafore 的这本书 名为 C 中的面向对象编程 它明确指出 根据C 标准 全局变量存储在堆上 现在我很困惑 无法真正弄清楚所提出问题的正确
c
globalvariables
heapmemory
stackmemory
直接堆栈和堆访问;虚拟级还是硬件级?
当我在 SO 上时 我读了很多指导评论 尤其是 C 语言 动态分配总是在堆上 自动分配在堆栈上 但特别是对于普通 C 我不同意这一点 因为 ISO IEC9899 甚至没有丢弃堆或堆栈的任何字 它只是提到了三种存储持续时间 静态 自动和分配
heapmemory
virtualmemory
stackmemory
堆和栈内存是如何管理、实现和分配的[重复]
这个问题在这里已经有答案了 可能的重复 堆和栈内存是如何管理 实现和分配的 https stackoverflow com questions 1212797 how is heap and stack memories mananged
c
memorymanagement
heapmemory
stackmemory
堆和栈内存是如何管理、实现和分配的?
在 C C 中 我们可以在堆栈或堆上存储变量 函数 成员函数 类的实例 每一项是如何实施的 它是如何管理的 高层 gcc 是否预先分配一块内存用于堆栈和堆 然后根据请求分配出去 原始内存是来自RAM吗 函数可以分配在堆上而不是堆栈上吗 澄清
c
memorymanagement
heapmemory
stackmemory
为什么我们不能在堆栈上分配动态内存?
在堆栈上分配内容非常棒 因为我们有 RAII 并且不必担心内存泄漏等问题 然而有时我们必须在堆上分配 如果数据真的很大 推荐 因为堆栈很小 如果要分配的数据的大小仅在运行时才知道 动态分配 两个问题 为什么我们不能分配动态内存 即大小为 仅
c
pointers
memorymanagement
heapmemory
stackmemory
java的内存分配
问题 我已设置 Xms512m 和 Xmx1024m 来运行应用程序 实习生使用 C 本机层执行其他操作 运行应用程序时出现 OutOfMemory 异常 我需要知道 C 使用哪个内存 即来自分配的内存 Xms512m 和 Xmx1024m
Java
c
memory
heapmemory
stackmemory
分配的变量引用在哪里,在堆栈中还是在堆中?
我有个问题 例如 当我在方法内声明变量时会发生什么 void myMethod Ship myShip new Ship 分配的 myShip 引用在哪里 在堆栈中还是在堆中 我认为在堆栈中 但我很困惑 因为我正在阅读 J2ME 游戏编程
Java
concurrency
heapmemory
stackmemory
Haskell 编译器如何决定是在堆上分配还是在堆栈上分配?
Haskell 不具有显式内存管理功能 并且所有对象都是按值传递的 因此也没有明显的引用计数或垃圾收集 Haskell 编译器通常如何决定是为给定变量生成在堆栈上分配的代码还是在堆上分配的代码 它是否会在堆或堆栈上为同一函数在不同的调用站点
在栈和堆上创建对象数组
考虑以下代码 class myarray int i public myarray int a i a 如何在堆栈上创建 myarray 对象数组以及如何在堆上创建对象数组 You can create an array of object
c
Arrays
object
heapmemory
stackmemory
方法在哪里?堆栈还是堆?
我知道方法的局部变量和参数位于堆栈中 但我无法弄清楚在 Java 中方法实际上位于哪里 如果我声明任何 Thread 对象 例如 Thread t new Thread t start 所以这意味着我已经创建了除主方法之外的单独的方法调用
Java
JVM
heapmemory
stackmemory
如何在堆栈和堆对象之间进行转换
Example Class obj1 Class obj2 void doThis Class obj void create Class obj1 new Class Class obj2 doThis obj1 doThis obj2
c
heapmemory
stackmemory
内存中引用变量和对象的逻辑结构/细节?
假设我们有一堂课 class Class1 int i 1 我们有一个变量 Class1 ob1 new Class1 引用本身是否存储在变量中ob1存储它引用的对象的信息Class1 堆的部分在哪里Class1存储它的信息Class1 t
Java
memory
heapmemory
stackmemory
getaddrinfo addrinfo 结果在堆栈或堆中
至少我有点困惑 getaddrinfo 调用 更新 指向 addrinfo 结构的指针 当我要在同一范围 该函数 中使用 addrinfo 时一切都很好 但是如果我将该结构复制到另一个结构 通过分配它 会发生什么 请帮助我了解正在进行的基础
c
Networking
struct
heapmemory
stackmemory
如何在堆栈上分配数组以提高性能?
一些最佳版本的函数 例如popcount and count consecutive zeros使用表查找来获得最终答案 在 C 和 C 中 我们可以在堆栈上分配数组并快速访问它们 在 C 中也有办法做到这一点吗 据我所知 stackall
c
Arrays
performance
heapmemory
stackmemory
识别地址是否属于堆、堆栈或寄存器
我有一个指向 C C 变量的指针 是否可以准确地找出该变量属于内存的哪一段 如果是 怎么办 注意 我只有这个变量的地址 如果变量是本地 全局等 则没有更多信息 查明您的体系结构是否有指向堆或堆栈区域的指针 通常有一些堆栈指针或帧指针 然后将
c
memorymanagement
heapmemory
stackmemory
为什么编译器保留一点堆栈空间而不是整个数组大小?
下面的代码 int main int arr 120 return arr 0 编译成这样 sub rsp 360 mov eax DWORD PTR rsp 480 add rsp 360 ret 知道整数是 4 个字节 数组大小是 12
Assembly
x8664
stackmemory
redzone
强制 GCC 在调用函数之前将参数压入堆栈(使用 PUSH 指令)
我已经开始在 GCC G 下开发一个小型 16 位操作系统 我正在使用 GCC 交叉编译器 它是在 Cygwin 下编译的 我将 asm code16gcc n 作为每个 CPP 文件的第一行 使用 Intel ASM 语法和命令行来编译和
gcc
x86
arguments
inlineassembly
stackmemory
C# - 垃圾收集
好的 我了解堆栈和堆 值位于堆栈上 引用位于堆上 当我声明一个类的新实例时 它位于堆上 并引用堆栈上内存中的这一点 我还知道 C 有自己的垃圾收集 即 它确定实例化类何时不再使用并回收内存 我有两个问题 我对垃圾收集的理解是否正确 我可以自
c
heapmemory
stackmemory
«
1
2
3
»