데이터 형의 케스팅에 관한것인데 이런 경우 어떤곳에 쓰이는 건지 궁금하네요.
글쓴이: dingkyu / 작성시간: 수, 2009/11/18 - 11:51오전
#include <stdio.h> void getPTAddress(int param) { printf("I got [%x] number\n", param); printf("Can I use param as pointer ?\n"); printf("[%d]\n", *((int*)param)); return; } int main(void) { int *pPointer = NULL; int number = 100; pPointer = &number; printf("pPointer is %x address\n", pPointer) ; printf("pPointer-> %d\n", *pPointer); getPTAddress((int)pPointer); return 0; }
제가 분석해야 하는 코드가 있는데 위와 비슷한 형식의 코드가 있습니다. 분명히 getPTAddress 함수는 포인터의 주소만 받습니다만 설마하고 포인터로 케스팅하고 포인터 처럼 쓰니까 결과가 잘 나와주더라구요. 그런데 왜 이렇게 함수를 만들었는지 이해가 잘 안가네요.
(이렇게 코딩이 가능한가 ? 하고 갸웃거리면서 만들어 봤는데 의외로 잘 되네요..)
혹시 이런 비슷한 코드가 응용될 수 있는 사례가 있을까요 ?
Forums:
댓글 달기