데이터 형의 케스팅에 관한것인데 이런 경우 어떤곳에 쓰이는 건지 궁금하네요.
글쓴이: 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:


댓글 달기