gpt4 book ai didi

c - 在堆栈中查找 char 数组的地址

转载 作者:行者123 更新时间:2023-11-30 15:28:26 25 4
gpt4 key购买 nike

我试图了解堆栈的布局以及内存是如何分配的。

我有以下程序,如果假设堆栈从地址 12000 开始(例如),我想知道缓冲区数组的起始地址。

void function( int a, int b ) {     
char buffer[ 512 ];
}

void main() {
function( 1, 2 );
}

最佳答案

函数中非静态局部变量的地址取决于调用函数时执行点的堆栈状态(SP 寄存器的值)。

简单来说,每次调用 function 时,buffer 可能有不同的地址。

强调一点,您可以使用以下选项之一:

printf("%p", buffer); // applicable only for arrays
printf("%p",&buffer); // applicable for arrays and for non-arrays

关于c - 在堆栈中查找 char 数组的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26576554/

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