Programming/C

C언어 - 구조체와 배열

경원구 2016. 6. 6. 10:52

<구조체와 배열>

구조체와 배열은 단순히 구조체와 배열의 개념을 합쳐서 응용한 것이다.

, 구조체 멤버변수에 배열을 사용해서 코딩하고, 구조체 변수로 배열을 사용해서 코딩하는 것이다.


<실습>

이 두가지를 모두 한번에 볼 수 있는 실습을 해보자.

 

-결과-

 

구조체 멤버 변수로 배열을 사용할 때 주의사항

구조체 멤버 변수로 배열을 사용후 main함수 내에서 배열값을 초기화 해줄때 주의사항이있다.

실습을 통해 어떤 오류가 있고 해결 방법을 알아보자.


<실습>


 

왜 오류가 날까?

코드를 자세히 보면 stu.nostu.name은 무엇인가? 저 두개는 배열의 이름이다. 배열의 이름은 무엇인가? 시작주소이다. 시작주소에 값을 넣는게 말이 되나...? 그래서 오류가난다.

아마, printf("%x", stu.no);를 하면 주소값이 나올것이다.

 

그렇다면 어떻게 해결을 해야할까?

string.h 헤더파일에 정의해놓은 함수중에 strcpy를 이용하면 된다. 이 부분은 뒤에 함수 파트에서 자세히 다루겠고, 답만 적어놓고 가겠다.

strcpy(stu.no, "1");

strcpy(stu.name, "kim);