gpt4 book ai didi

c - 堆栈变量的排序 gcc

转载 作者:太空宇宙 更新时间:2023-11-04 02:40:00 25 4
gpt4 key购买 nike

<分区>

我的印象是您声明变量的顺序将决定调用函数时将它们放入堆栈的顺序,这将是一种相反的关系(与它们声明方式相反的顺序将用于放置他们在堆栈上)。

例如我有两个变量:

char buffer[16];
int flag = 0;

我想确保标志总是放在缓冲区之前,但无论我在 C 中声明它们的顺序如何,gdb 显示缓冲区总是放在堆栈上的标志之前,这对于基于堆栈的来说非常糟糕缓冲区溢出。这是为什么?

我在 Arch Linux 64 位系统中使用的系统在带有 gcc 5.2 的 x86_64 上运行

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com