void * 는 모든 포인터 타입의 저장이 가능하다.
하지만 어떤 타입인지 모르고 저장하기 때문에 사용에 자제가 필요할 것 같다.
또한 자신이 가리키는 실제 데이터의 타입을 모르므로 사이즈도 모르게 된다.
(int* 는 4byte, char* 는 1byte 짜리 실제 데이터를 가리킨다.)
int data = 5;
void *VoidPointer;
VoidPointer = &data;
printf("%d\n", *(int*)vp); // 실제 출력시에는 타입 캐스팅을 해줘야 한다.
printf("%d\n", ((int*)vp)[0]); // 배열 처럼 쓰기 위해서도 타입 캐스팅을 해줘야 한다는 거
PS) 근데 이게 함수로 인자 주고 받을 경우에 타입까지 전달해줘야 한다는 불편함이 있따. ㅡㅡ;;
하지만 어떤 타입인지 모르고 저장하기 때문에 사용에 자제가 필요할 것 같다.
또한 자신이 가리키는 실제 데이터의 타입을 모르므로 사이즈도 모르게 된다.
(int* 는 4byte, char* 는 1byte 짜리 실제 데이터를 가리킨다.)
int data = 5;
void *VoidPointer;
VoidPointer = &data;
printf("%d\n", *(int*)vp); // 실제 출력시에는 타입 캐스팅을 해줘야 한다.
printf("%d\n", ((int*)vp)[0]); // 배열 처럼 쓰기 위해서도 타입 캐스팅을 해줘야 한다는 거
PS) 근데 이게 함수로 인자 주고 받을 경우에 타입까지 전달해줘야 한다는 불편함이 있따. ㅡㅡ;;
http://bluezery.com/blog/trackback/114
Your comment is the critical success factor for the quality of blog post ..




