struct myStruct
{
myClass* member;
}
myStruct *s = (myStruct*) someVariable;
이제 s->member
의 값을 myFunction (myClass c)
으로 지정하고 싶습니다. 어떻게 역 참조합니까?이 멤버를 역 참조하려면 어떻게해야합니까?
struct myStruct
{
myClass* member;
}
myStruct *s = (myStruct*) someVariable;
이제 s->member
의 값을 myFunction (myClass c)
으로 지정하고 싶습니다. 어떻게 역 참조합니까?이 멤버를 역 참조하려면 어떻게해야합니까?
이 방법 : 당신이 구조에 대한 포인터처럼
*(s->member) <------ Gives you a `myClass` object
동일합니다.
int main()
{
myFunction(*(s->member));
return 0;
}
어리석은, 어리 석다. 나는 어리 석다는 것을 알았다. 감사. – Cheetah
당신은 포인터 역 참조 operator*
를 사용 할 수 있습니다 : 그것은으로
void myFunction (myClass c)
{
}
전화. 이 경우 *s->member
을 입력하면됩니다. s->member
주변에 괄호를 쓸 필요가 없습니다.
이유는 무엇입니까? someVariable
을 myStruct*
으로 전송하는 이유가 명확하지 않습니다.
구조체 정의 뒤에 ;
도 누락되었습니다.
's-> member' 주위에는 괄호가 필요 없습니다. 그러나 좋은 가독성을 제공하므로'()'을 생략 할 것을 주장 할 필요가 없다. –
's-> 회원'주위에 괄호가 필요없는 이유를 설명하는 데주의해야합니까? –
@Als : 개인적으로 괄호를 더 읽기 쉽게 생략했습니다. 여분의 괄호가 임의로 추가 될 수 있다는 것을 알기에, 나는 그것이 부족한 형태를 보여주기 위해 더 많이 사용된다는 것을 알게되었다. –
무엇이'someVariable'이고 왜 캐스팅합니까? – FatalError
s-> 회원은 역 참조해야합니까? 질문은 무엇입니까? – RussS
'void *'이고 함수 호출의 일부를 변경할 수 없기 때문에. 나는 아래에 게시 된 블록이 작동하는 것을 믿는다. – Cheetah