다음을 사용하여 주소를 인쇄 할 수 있다는 것을 알고 있습니다.
printf("%p\n",(void*)&a);
변수의 주소 (= int는 메모리의 위치를 나타냄)에 액세스하는 방법이 있습니까?
가능한 해결 방법은 sprintf % p의 atoi이지만 일반적으로 더 깨끗한 방법이 있습니까?
Nachos 프로젝트에 필요합니다.
내가하려는 것은 커널에서 만든 객체의 주소를 리턴 레지스터에 쓰는 것입니다.
당신은 전송할 수 있습니다 void *
A를 uintptr_t
정수 포인터를 나타내는 충분한을 입력이다.
uintptr_t p = (uintptr_t)(void *)&a;
표준에 따르면 변환은 a uintptr_t
와 a 사이에서만 유효하므로 이중 캐스트가 필요 합니다 void *
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다