void 형 포인터

포인터 변수 ptr로 정수 n와 실수 f를 저장하려고 한다. 어떡해 해야 할까? 포인터 변수는 분명 자신과 동일한 자료형의 주소만 저장할 수 있다.

이럴경우 void 형 포인터를 사용하면 된다.

#include <stdio.h>

int main()
{
      char c;
      int n;
      float f;
      double d;
      void* ptr;

      ptr = &c;
      ptr = &n;
      ptr = &f;
      ptr = &d;
      return 0;
}
위 프로그램 수행이 에러 없이 수행되는 것을 알 수 있다. void 라는 것은 자료형이 정의되지 않았다는 것이다. 따라서, 위와 같이 어떤 자료형도 저장이 가능하다.

참고로 함수에서의 void 형은 어떠한 반환값도 허용하는 것이 아니라 반환값이 없다는 것을 의미한다.


Reference : C/C++ 개발자를 위한 KIM 포인터 실무

[프로그래밍/_ C/C++] - [C언어] 포인터와 const 키워드
[프로그래밍/_ C/C++] - [C언어] 널포인터(NULL)
[프로그래밍/_ C/C++] - [C언어] 포인터의 포인터
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by Proneer

댓글을 달아 주세요


티스토리 툴바