아래의 프로그램에서 가상 주소는 두 프로세스 모두 동일합니다. 전역 변수의 이유를 이해했지만 지역 변수를 이해할 수 없었습니다.C와 리눅스의 가상 주소 할당
실행하기 전에 로컬 변수에 가상 주소를 어떻게 할당합니까?
int main()
{
int a;
if (fork() == 0)
{
a = a + 5;
printf(“%d,%d\n”, a, &a);
}
else
{
a = a –5;
printf(“%d, %d\n”, a, &a);
}
}
http://en.wikipedia.org/wiki/Call_stack –
덧붙여 말하면, 포인터에는'% d' 대신'% p'를 사용하십시오. –