해결된 질문
작성
·
176
1
14:28분경 P라는 구조체의 포인터에 맴버 접근시 왜 dote( . )연산을 사용하는것 이죠? 포인터의경우 -> 연산자를 사용해서 접근해야하는것 아닌가요??
답변 2
1
struct person *p로 선언된 포인터 p는 struct person을 가리키는 포인터죠. p는 mmap()을 통해 메모리를 받아옵니다. 이제 p를 사용할 수 있죠.
질문하신 코드는 for()문 안에서 모든 struct person에 대한 정보를 출력하는 부분 입니다. 그래서 p[i].name로 출력하게 됩니다. p를 structure array처럼 사용한 것이죠. 첫번째 엔트리는 p->name로 출력할 수 있지만 두번째, 세번째 엔트리는 p[1].name, p[2].name로 출력하는게 편하죠 :)
구글링을 해보시면 많은 예제들이 있습니다. "c structure array pointer example"으로 검색했더니 여러 가지 예제가 조회되었는데요, 그 중 아래 예제가 가장 보기 쉽게 구성되어 있는 것 같더라구요. 참고하세요~!
https://stackoverflow.com/questions/16201607/c-pointer-to-array-of-structs
0