알고 있습니다 : char *는 char에 대한 포인터입니다. 및 int *는 int에 대한 포인터입니다.char *의 크기는 int *의 크기와 동일합니까?
그래서, 나는 다음과 같은 두 가지 작업을 수행 확인하려면 :
- 그래서 지금은 32 비트 컴퓨터에서 나는 가정, 다음의 메모리 주소는 32 비트 넓은 의미한다. 따라서 char *와 int *의 크기는 모두 32 비트 (4 바이트)입니다. 맞습니까? 또한 char * *의 크기도 int *의 크기와 동일합니까?
내가 가지고있는 것으로 가정하면 : int * ptr; * ((INT *) PTR)는 동일한 = 0x514로
따라서 지금 * ((* CHAR) PTR) = 0x154 하 바로 동일? (0x514는 임의의 임의의 메모리 주소입니다.)
플랫폼 : 저는 x86입니다.
추신 : 나는 형식 캐스트가 코드 작성을위한 제안 된 방법이 아니라는 것을 알고 있습니다. 하지만 커널 코딩을하고 있습니다. 따라서 타입 캐스팅을해야합니다!
표준이 그것을 말하지 않더라도 실제로 다른 환경을 쉽게 찾을 수 있을지는 의문입니다. – Mysticial
크기는 실제로 동일하지만 정렬 요구 사항은 다릅니다. – DCoder
"커널 코딩"을하고 있다면, 이는 이미 코드가 실행될 수있는 플랫폼의 수를 제한합니다. 지원되는 OS 스펙을 확인하십시오. –