반응형
void 형 포인터란 모든형(char,int,double)등의 주소를 저장할 수 있는 포인터이다.
char형 주소를 저장히기 위해서는 char형 포인터가 필요하고 int형 주소를 저장하기 위해서는 int 형 포인터가 필요하다 하지만 char형과 int형주소 모드를 저장해야 하는 겨우라면 데이터 자료형이 결정되지 않았으므로 void형 포인터를 사용하여 저장해야한다.
그러나 *vp(변수)와 같이 주소가 가지고 있는 값에는 접근할수없다. 이유는 주소가 몇 바이트 크기의메모리를 참조해야 할지 알수 없기 때문이다.
void형 포인터 변수 vp는 자료형이 void이므로 몇 바이트의 크기를 어떤 형태로 접근해야 할지 알수없다. 그래서 void형 포인터 변수는 형변환해서 사용하거나 다른 포인터 변수에 대입하여 사용한다.
예제)
#include <stdio.h>
void main()
{
char c='a';
int n=10;
void *vp;
vp=&c;
printf("%c %c \n",c,*(char*)vp);
vp=&n;
printf("%d %d \n",n,*(int*)vp);
}
[출처] void형포인터란?|작성자 반기문
반응형