[C++] void pointer, null pointer
Updated:
개요
- void pointer
- 데이터 형이 정해지지 않은 포인터
- 모든 타입의 데이터 할당이 가능하며 타입캐스팅을 통해 접근
- C++17 환경이라면 any 사용 권장
- null pointer
- 아무 것도 가리키지 않는 포인터
- 포인터 초기화 또는 메모리 할당 실패 시 반환 값 등에 사용
예제
- 코드
-
#include <cstdlib> #include <iostream> #include <string> using namespace std; int main() { auto func = [](auto arg) { void *v = &arg; cout << *static_cast<decltype(arg) *>(v) << endl; }; func(nullptr); func(1); func('a'); func("b"); func(string("c")); int *i = new int; if (i == nullptr) { return EXIT_FAILURE; } *i = 1; cout << *i << endl; return EXIT_SUCCESS; }
-
- 실행 결과
-
nullptr 1 a b c 1
-