로컬 변수가 주 메모리와 스택 메모리에 있다는 것을 알고 있습니다. 주 기능의 주소를 인쇄하면 로컬 변수의 주소와 주소가 인쇄됩니다. malloc, 지역 변수가 malloc 주소에 더 가깝고 주요 fuction 주소에 더 가깝지 않은 것 같습니다. 왜? 코드 : 스택, 코드 및 데이터의c의 지역 변수가 스택 메모리 근처에있는 것 같습니다.
int g;
int main(int argc, char** argv) {
int l;
printf("Adress of main fuction: %d\n", main);
printf("Adress of a global variable(g): %d\n", &g);
printf("Adress of a local variable(l): %d\n", &l);
printf("malloc: %d\n", malloc(10));
}
왜 더 가까이 있지 않아야합니까? 아니면 더? 컴파일러와 운영체제는 원하는대로 자유롭게 사용할 수 있습니다. –
그리고 주소를 출력하기 위해'% d'을 사용하지 마십시오 - 이것은'% p '가 무엇을위한 것입니까. –
그 주소를 말씀해 주시겠습니까? – Swanand