![]() |
1
2
局部变量通常在堆栈上创建。在大多数实现中,堆栈向下增长,而不是向上增长,因为内存是分配的。所以,很可能
|
![]() |
2
12
简单的解释是,仅仅因为在“buf”之后的源代码行中声明了“x”,并不意味着编译器将它们放在堆栈中的相邻位置。在代码显示的情况下,'x'根本不用,所以它可能没有被放入 在任何地方 . 即使你确实以某种方式使用了'x'(这必须是一种防止它被塞进寄存器的方法),编译器也很有可能对它进行排序 “buf”就是这样 不
因为
但即使你这么做了
那个
(你已经读过了吗 Smashing the Stack for Fun and Profit ? 你应该。) 1个 |
![]() |
3
6
正如另一个答案所指出的,这根本不能保证
它可能会告诉你
以下是记忆最初的样子:
如果你要输入“大象”,它会是这样的:
|
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 5 月前 |
![]() |
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 6 月前 |
![]() |
Bobby · 复合字面值总是左值吗? 6 月前 |
![]() |
9-Pin · C: 嵌套结构的堆栈内存分配 6 月前 |