(C++) 구조체안에서 구조체를 가리키는것 질문입니다!
별
2023.04.01
struct dizzy //dizzy라는 이름의 구조체{
int id; //멤버
dizzy * p // 멤버?! 변수?!
(구조체의 포인터타입의 변수를 만든건지 그냥 반환값타입이 dizzy인건지 모르겟네요)
};
int main()
{
dizzy a; //a는 dizzy의 변수
라면
a.id(int로 반환하니까 정수가오는거구)랑 a.p(포인터값을 반환하니까 주소가 오구요)를 쓸수있잖아요
a는 dizzy의 변수이고 id랑 p는 a라는 변수안에서 쓸수 있는 멤버잖아요
a안에서는 p가 멤버로쓰였는데dizzy *p 에서
*p도 a와 같은 변수아닌가요?
메인안에서
*p.id로 쓸수없나요?
-
일본드립
왜 안되겠어요? 당연히 되겠죠.
main()에서 dizzy a; 라고 선언하셨으니 대충 그 이후로 코딩은 이렇게 되겠네요.
a.p = (struct dizzy*)malloc(sizeof(struct dizzy));
(*a,p).id = 100;
그런데, 저렇게 사용하면 참 불편하죠? 그래서 간접참조 시 사용하는 -를 사용합니다.
a.p-id = 100;