[자격증]/정보처리기사 실기

1450707 C언어

Ben의 프로그램 2023. 9. 30. 11:35
728x90

핵심 Keyword

1. 포인터 변수

2. 구조체


C 언어
struct jsu 라는 구조체를 생성을 했는데요. 해당 구조체가 차지하는 메모리 구조를 살펴보면 위와 같습니다. 

이제 Main 메서드를 살펴보겠습니다. 메인 메서드의 첫 번째 라인을 보면 jsu 구조체를 갖는 배열 구조체 st를 생성하는 것을 볼 수 있는데요. 이것을 메모리 관점에서 살펴보면 다음과 같습니다. 

이런 구조의 메모리에 데이터를 집어 넣게 되므로 결과적으로 다음과 같은 데이터가 들어가게 됩니다. 

문자열의 끝에는 \0 이 온다고 배웠었습니다. 따라서 위와 같은 형태로 데이터가 저장되게 됩니다. \0 이라는 널 문자는 실제로 출력이 되지는 않습니다. 

그 다음 2번째 라인을 보면 포인터 변수 p 를 선언한 것을 볼 수 있습니다. p 는 포인터 변수이기 때문에 주소값을 가지게 됩니다. 

p 라는 포인터 변수는 3 번째 라인에서 실제로 사용이 되었는데요. st[0] 번째의 주소값을 p 포인터 변수에 대입하라고 나와있습니다. 예를 들어 위의 그림에서는 1000 번지라는 것을 갖게 되는 것이죠.

그러면 p 라는 포인터 변수와 p+1 의 주소는 위와 같습니다. p+1 의 hab 에는 p+1 의 os 와 p+2 의 db 를 더한 값을 대입합니다. p+1 의 hhab 에는 p+1 의 hab 와 p 의 os 그리고 p의 db 의 값을 합한 값을 더해줍니다.  

정답은 501입니다. 

 

'[자격증] > 정보처리기사 실기' 카테고리의 다른 글

1450709 Python  (0) 2023.09.30
1450708 애플리케이션 테스트  (0) 2023.09.30
1407900 디자인 패턴  (0) 2023.09.28
1490705 Factory Method 디자인 패턴  (0) 2023.09.28
1490702 ARP, RARP 스푸핑  (0) 2023.09.28