Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
堆栈防护和堆栈粉碎保护 - 金丝雀、内存
我有一些关于 Stack Guard 和 SSP 保护的问题 第一个问题是关于 Stack Guard 及其三种类型的金丝雀 如果我没猜错的话 终止符 随机和随机异或 我想知道如何在 x86 Linux 系统上禁用 Stack Guard
Linux
gcc
x86
stackmemory
hardening
类成员和显式堆栈/堆分配
假设我们有 4 个类 如下所示 class A public A void m B private B m B class B public B void m i 1 private int m i class C public C voi
c
memory
memorymanagement
heapmemory
stackmemory
如何判断一个变量是分配在栈还是堆中?
在某处偶然发现这个面试问题 在C中 给定一个变量x 如何确定该变量的空间是在堆栈还是堆上分配的 有什么方法可以以编程方式找到它 而不必通过符号表等 并且查找空间是否在堆栈或堆中分配有任何实际意义吗 不 一般来说不是 你知道gcc吗 fspl
c
heapmemory
stackmemory
获取Linux中每个进程的堆和堆栈的大小
我想知道Linux中每个进程的堆和堆栈的大小 有什么办法可以找到吗 我发现 sbrk 0 会给我堆的结尾 但是如何找到堆的起始位置来获取堆大小呢 另外 关于堆栈大小 是否有任何方法可以通过任何库调用或系统调用找到每个进程的堆栈开头和当前堆栈
c
Linux
heapmemory
stackmemory
类的字段,它们存储在栈中还是堆中?
我昨天看到一个问题 它 对我来说 提出了另一个问题 请看下面的代码 public class Class1 int A as I uderstand int is value type and therefore lives in the
c
memorymanagement
heapmemory
stackmemory
临时对象存储在哪里?
是不是真的临时对象存储在动态 堆 内存中 标准没有为它们强制任何内存区域 堆 堆栈 但它们就像局部变量 自动存储 一样 位于表达式的末尾 或者当绑定到引用常量时更长 被破坏 大多数实现会将它们像局部变量一样存储在堆栈中 edit 正如 Ja
c
heapmemory
temporaryobjects
stackmemory
为什么Visual C++中栈地址低于堆地址?
众所周知 栈地址高于堆地址进程地址空间 但是当我在VS2010中编写程序验证时 遇到了一些麻烦 栈的地址低于堆 甚至低于Data Segment 程序如下 include stdafx h include malloc h static i
visualc
heapmemory
stackmemory
现代计算机的堆栈和堆空间
当用 C 语言编写时 如何知道启动程序时内存中有多少可用堆栈空间 堆空间怎么样 我如何知道程序执行期间使用了多少内存 这都是 Win32 特定的 不是真正 C 特定的 只是操作系统 API 创建线程时 默认情况下它会获得 1MB 堆栈空间
c
memorymanagement
heapmemory
stackmemory
是否可以在堆栈上创建类的实例?
我知道在 C 中你可以在堆栈上创建类的实例 例如 MyClass mc MyClass 8 2 或者像在堆上 MyClass mc new MyClass 8 2 你能在 C 中做同样的事情吗 我在 C 中创建类的唯一方法是newing i
c
heapmemory
newoperator
memorymodel
stackmemory
内核栈和用户空间栈
内核堆栈和用户堆栈有什么区别 为什么使用内核栈 如果在 ISR 中声明局部变量 它将存储在哪里 每个进程都有自己的内核堆栈吗 那么进程如何在这两个堆栈之间进行协调呢 内核堆栈和用户堆栈有什么区别 简而言之 除了使用内存中的不同位置 因此堆栈
Linux
Linuxkernel
Kernel
stackmemory
interrupthandling
.NET - 函数变量存储在地址空间的堆或堆栈上?
我在一次考试中遇到了如下问题 当程序调用函数时 其中的数据结构类型是 为该函数中的变量分配的内存 HEAP QUEUE LIFO STACK 根据测试 HEAP是正确答案 虽然我选择了STACK 有很棒的人可以解释一下为什么吗 提前致谢 首
c
NET
memory
heapmemory
stackmemory
Windows 堆栈和堆地址范围
到目前为止 我在使用 Linux 时 堆栈地址非常高 而堆地址非常低 通过使用 C 程序打印堆和堆栈地址可以看出 我对 Win32 进程内存布局有一个问题 MWSDN说堆栈地址高于堆地址 但从我在实践中看到的情况来看 堆栈地址低于堆地址 所
WINAPI
memory
process
heapmemory
stackmemory
多维数组在内存中是如何格式化的?
在 C 中 我知道我可以使用以下代码在堆上动态分配二维数组 int someNumbers malloc arrayRows sizeof int for i 0 i lt arrayRows i someNumbers i malloc
c
Arrays
memory
datastructures
stackmemory
为什么不在 C++ 中的所有内容都使用指针呢?
假设我定义了一些类 class Pixel public Pixel x 0 y 0 int x int y 然后使用它编写一些代码 我为什么要执行以下操作 Pixel p p x 2 p y 5 来自 Java 世界的我总是这样写 Pix
c
pointers
heapmemory
stackmemory
关于“new”关键字的 Java 内存问题
如果运行以下代码会发生什么 while true String x new String ABC 在记忆方面 String x 是分配在栈上还是堆上 程序最终会因为内存溢出而崩溃吗 还是垃圾收集会阻止这种情况发生 new关键字是否总是在堆上
Java
memory
heapmemory
stackmemory
Windows 汇编堆和堆栈?
操作系统 Windows 7 32位 所以像c 一样 有一个堆和一个堆栈 但我最近开始进行一些汇编学习 但没有看到任何类似的东西 只有一个堆栈 但它看起来就像纯粹的内存 那么堆和栈的实现是特定于 C 和其他语言的吗 或者您仍然在汇编中分配堆
Windows
Assembly
heapmemory
stackmemory
我可以从堆栈中 POP 一个值,但将其放在 NASM Assembly 中的任何地方吗?
NASM 程序集 Ubuntu 32 位程序 通常 当从堆栈中弹出一个值时 我会这样做 POP somewhere 进入寄存器或变量 但有时 我只是不想把它放在任何地方 我只想删除堆栈中的下一个元素 正在做 POP 就这样不行 我的一个解决
x86
stack
nasm
stackmemory
stackpointer
Java 原语放在栈上还是堆上?
我只知道非基元 对象 位于堆上 方法位于堆栈上 但是基元变量呢 update 根据答案 我可以说堆可以为给定的对象拥有新的堆栈和堆 鉴于该对象将具有原始变量和引用变量 本地定义的原语将位于堆栈上 但是 如果将原语定义为对象实例的一部分 则该
Java
heapmemory
stackmemory
在 x86 汇编中的过程中调用 ret 指令是否重要
我目前正在学习 x86 汇编 然而 当使用堆栈进行函数调用时 我仍然不清楚一些事情 据我所知 调用指令将涉及将返回地址压入堆栈 然后将要调用的函数的地址加载到程序计数器 ret 指令会将这个地址加载回程序计数器 我的困惑是 在过程 函数中调
Assembly
x86
stackmemory
stackframe
stackpointer
«
1
2
3