개요
- 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;
}
- 실행 결과