인프런 커뮤니티 질문&답변

zbqmgldjfh님의 프로필 이미지
zbqmgldjfh

작성한 질문수

리눅스 시스템 프로그래밍 - 이론과 실습

memory map - 라이브 프로그래밍

구조체 포인터 관련 질문입니다!

해결된 질문

작성

·

176

1

14:28분경 P라는 구조체의 포인터에 맴버 접근시 왜 dote( . )연산을 사용하는것 이죠? 포인터의경우 -> 연산자를 사용해서 접근해야하는것 아닌가요??

답변 2

1

런잇(ProgCoach4U)님의 프로필 이미지
런잇(ProgCoach4U)
지식공유자

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

zbqmgldjfh님의 프로필 이미지
zbqmgldjfh
질문자

좋은답변 감사드립니다!!

zbqmgldjfh님의 프로필 이미지
zbqmgldjfh

작성한 질문수

질문하기