한국어
C/C++
 

C void형 포인터

pjk 2014.05.24 12:27 조회 수 : 6052

void*

void포인터는 데이터 타입이 없는 포인터를 말한다. 따라서 void포인터는 저장은 가능하지만 연산에 사용할 수는 없다.

하지만, 모든 주소를 저장할 수 있다는 장점을 가지고 있다. 하나의 프로세서에서 사용하는 주소의 길이는 모두 동일하다. 32비트 프로세서의 주소는 32비트로 표현된다. 그래서 포인터의 데이터 타입에 상관없이 주소를 저장하기 위해서는 4바이트가 동일하게 사용된다. 그래서 void포인터를 저장할 때에는 4바이트 크기의 메모리를 할당해주면 되기 때문에 문제가 발생하지 않는다. 문제는 void 포인터가 증감을 하거나, 포인터를 이용해 주소안의 데이터를 읽어올 때에 발생한다.

데이터 타입이 지정되지 않아 증감에 사용할 한 단위의 크기를 지정할 수 없고, 데이터를 읽어올 때에도 시작 주소로부터 몇 바이트를 읽어와야 할지 결정하지 못한다. 하지만 이러한 문제는 캐스팅으로 간단히 해결할 수 있다.

번호 제목 글쓴이 날짜 조회 수
공지 C Programming FAQs(한글번역 pdf문서) makersweb 2014.03.18 27685
22 C코드 최적화 pjk 2014.02.10 5886
21 C언어 강좌-배열과 포인터 file makersweb 2014.03.10 5166
20 영어를 C언어로, 또는 C언어를 영어로 변환 해주는 cdecl makersweb 2014.03.19 8563
19 예제소스를 통해 리틀엔디안(Little endian)과 빅엔디안(Big endian)의 차이점 알아보기 pjk 2014.05.24 8653
18 Bit fields(비트필드) pjk 2014.05.24 4833
17 구조체 메모리 저장방식 #pragma pack file pjk 2014.05.24 5899
16 함수 포인터의 배열 pjk 2014.05.24 8638
» void형 포인터 pjk 2014.05.24 6052
14 unsigned형의 모든 상수에는 접미사 ‘U’를 사용하여야 한다. file pjk 2014.05.24 38731
13 클래스 멤버에 대한 액세스 제어 pjk 2014.06.27 5504
12 strcmp, wcscmp, _tcscmp pjk 2014.07.18 11426
11 HEX(16진수) to ASCII(아스키) 변환 코드 pjk 2014.08.24 34938
10 volatile이 정확히 어떤 의미를 가지는 건가요? pjk 2014.09.30 5458
9 c/c++문자열, 유니코드 관련 함수 makersweb 2015.07.09 6188
8 구조체 배열을 반환하는 함수를 반환하는 함수를 호출하여 구조체 멤버 배열 요소 접근하기 makersweb 2016.05.22 10825
7 switch와 if 중 어느 것이 더 빠른가 file makersweb 2017.01.31 3779
6 함수포인터와 typedef로의 선언 makersweb 2018.02.03 1974
5 싱글톤 객체생성 패턴에 대해서 file makersweb 2018.07.01 4500
4 배열과 포인터, 등가포인터 예제 makersweb 2019.01.16 1958
3 C++로 플러그인 개발 file makersweb 2019.12.08 2699