gpt4 book ai didi

c - C 中虚拟内存的组织

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

对于以下各项,它存储在内存中的位置以及存储顺序:全局变量局部变量静态局部变量函数参数全局常量局部常量函数本身(并且是>主要特殊情况?),动态分配变量

我将如何通过实验(即使用 C 代码)来评估这一点?

我知道
全局变量——数据
静态变量——数据
常量数据类型——代码
局部变量(在函数中声明和定义)--堆栈
主函数中声明和定义的变量——栈
指针(例如:char *arr,int *arr)——数据或堆栈
动态分配空间(使用malloc、calloc)--堆

最佳答案

您可以编写一些代码来创建上述所有内容,然后打印出它们的地址。例如:

void func(int a) {
int i = 0;
printf("local i address is %x\n", &i);
printf("parameter a address is %x\n", &a);
}

printf("func address is %x\n", (void *) &func);

请注意,函数地址有点棘手,您必须将其转换为 void*,并且在获取函数地址时省略 ()。比较内存地址,您将开始了解图片或事物的位置。通常,文本(指令)位于底部(最接近 0x0000),堆位于中间,堆栈从顶部开始向下增长。

关于c - C 中虚拟内存的组织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29196570/

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