Notice
Recent Posts
Recent Comments
Link
반응형
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
Tags
- gjk
- mock
- Turtlesim
- 데이터분석
- narrow-phase
- plotjuggler
- generic pointer
- ROS
- unittest
- roslaunch
- UV
- corrosion
- Cargo
- CMAKE
- gradient accumulation
- Topic
- rospy.spin
- remapping
- gjk-epa
- cbindgen
- 워크스페이스
- C++
- separating axis theorem(sat)
- broad-phase
- 비동기적
- subsribe
- rust
- convex
- CONSTRAINTS
- vscode
Archives
- Today
- Total
똑바른 날개
제네릭 포인터(generic pointer) 본문
반응형
void* 자료형의 포인터를 제네릭 포인터라고 한다. 다른 포인터와 마찬가지로 제네릭 포인터도 주소를 가리킬 수 있지만, 실제 자료형은 알 수 없다. 제네릭 포인터는 다른 포인터의 내용을 담기 위해 주로 사용되나, 실젤 자료형을 담지 않는다. 하여, 역참조하는 것이 불가능하다.
int main(int argc, char** argv) {
int var = 9;
int* ptr = &var;
void* gptr = ptr;
printf("%d\n", *gptr); //역참조 오류
return 0;
}
유용한 예시 - 포인터 입력 인수
void print_bytes(void* data, size_t length) {
char delim = ' ';
unsigned char* ptr = data;
for (size_t i = 0; i < length; i++) {
printf("%c 0x%x", delim, *ptr);
delim = ',';
ptr++;
}
printf("\n");
}
int main(int argc, char** argv) {
int a = 9;
double b = 18.9;
print_bytes(&a, sizeof(int));
print_bytes(&b, sizeof(double));
return 0;
}
우리가 template을 사용하여 다양한 인자를 전송하는 방법도 있지만, generic pointer를 사용한 인자 전달 방식이 있다.
반응형
'프로그래밍 > c++' 카테고리의 다른 글
| c++ 구조체 memory layout 이란? (1) | 2025.09.01 |
|---|---|
| 함수 포인터(function pointer) (0) | 2025.09.01 |
| RAII 개념 (7) | 2025.07.03 |