-
request for member '*******' in something not a structure or unionC언어 Tip 2019. 2. 2. 17:10
구조체 관련해서 컴파일 시 에러 “request for member '*******' in something not a structure or union”로 떠서 많이 당황했다. 논리적으로는 오류가 없다고 생각했었기 때문이다. 그래서 검색결과 오류의 결과를 찾을 수 있었는데
1. 구조체를 포인터로 선언할경우, 혹은 함수의 매개변수로써 구조체를 포인터로 사용하게 되면구조체의 멤버변수(구조체 안에 있는 변수들은) '.'이 아닌 '->'로 참고를 해야한다.ex)int LNext(List * plist, LData * pdata){if(plist->curPosition >= (plist->numOfData)-1)return FALSE;*pdata = plist->arr[++(plist->curPosition)];return TRUE;}보이시는가?
plist->curPosition
와 같이, plist.curPosition이 아닌, ->으로 함으로써, 주소값을 찾아갈 수 있음을 의미한다.
햇갈리지 않도록 주의하자!
참고 : https://stackoverflow.com/questions/2184419/what-does-request-for-member-in-something-not-a-structure-or-union-m
'C언어 Tip' 카테고리의 다른 글
memset 함수를 사용하는 이유 (0) 2019.02.23 Incompatible implicit declaration of built-in function ‘******’ (0) 2019.02.02 gets_s() 함수는 visual studio에서만 사용이 가능하다. (0) 2019.01.04 2차원 배열(2차배열) 선언할때 주의해야할점! (0) 2018.12.30 함수에서 배열 매개변수를 사용할때 주의할 점! (0) 2018.12.29