原文:Hack The Virtual Memory: C strings & /proc - Holberton
翻译:RobotCode俱乐部
我们之前讨论过在进程的虚拟内存中可以找到什么,以及在哪里可以找到它。今天,我们将尝试“重建”下图,方法是打印程序中各个元素的地址。
The stack(栈)
我们要在图中定位的第一个区域就是栈。我们知道在C语言中,局部变量位于栈上。如果我们打印一个局部变量的地址,它应该会告诉我们在虚拟内存中哪里可以找到栈。让我们使用下面的程序来找出各种元素在内存中的分布:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
/**
* main - print locations of various elements
*
* Return: EXIT_FAILURE if something failed. Otherwise EXIT_SUCCESS
*/
int main(void)
{
int a;
printf("Address of a: %pn", (void *)&a);
return (EXIT_SUCCESS);
}
(译者注:实际程序被我修改了下,在printf后加了while(1);以方便我们观察maps)