구조체 변수의 주소를 가리키는 포인터이다. 이를 통해 구조체의 멤버에 접근하거나 구조체 데이터를 동적으로 관리할 수 있음
struct MyStruct {
int x;
int y;
};
MyStruct s; // 구조체 변수 선언
MyStruct* ptr = &s; // 구조체 포인터 선언 및 초기화
구조체 포인터를 통해 멤버에 접근할 때는 ->(화살표 연산자)를 사용하거나 (*구조체 포인터명).구조체 멤버 변수 형식으로 선언함
struct MyStruct {
int x;
int y;
};
int main() {
MyStruct s = {10, 20};
MyStruct* ptr = &s;
cout << "x: " << ptr->x << endl;
cout << y: " << (*ptr).y << endl;
return 0;
}
출력 결과:
x: 10, y: 20
구조체 포인터는 동적 메모리 할당과 함께 자주 사용된다. 왜냐하면 유연한 메모리 관리와 효율적인 데이터 구조 설계를 가능하게 하기 때문이다.
struct MyStruct {
int x;
int y;
};
int main() {
MyStruct* ptr = new MyStruct; // 구조체 동적 메모리 할당
ptr->x = 30;
ptr->y = 40;
cout << "x: " << ptr->x << ", y: " << ptr->y << endl;
delete ptr; // 동적 메모리 해제
return 0;
}