● void형 포인터랑 무엇인가?
- 주소값을 저장할수 있는 메모리 공간
- 다만, 주소값을 저장할수 있는 제한이 없다.
> ex) int* a; // int형만 가리킨다.
char* ch; // char 형만 가리킨다.
void* v; // 모든 타입을 가리킬수 있다.
- 자료형에 대한 정보가 제외된, 주소 정보를 담을 수 있는 형태의 변수
- 포인터 연산, 메모리 참조와 관련된 일에 활용 할수 없다.
======================================================================================================================
int main(void)
{
char c = 'b';
int number = 10;
void *p ;
p = &c;
p = &n;
}
int main(void)
{
int n = 10;
void * vp = &n; // OK!
*vp = 20; // Error!... 몇바이트를 참조해야할까?(void형 포인터는 연산, 메모리 참조 불가)
// 타입정보가 없음-> 메모리 참조X (활용 : malloc 라는 동적 할당에서 다루겠음)
vp++; // Error!...
...
}
소스 출저: 윤성우 C 열혈강의
==================================================================================================================
void 포인터의 정리 ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ
void 포인터를 사용할때 주의점은
타입의 정보가 없기때문에 쓰기위해선 캐스팅 등을 통해서 타입을 명시해줘야 의미를 가짐^^
이 글을 공유하기