본문 바로가기
C_프로그래밍

[C 프로그래밍] 43장. 동적할당(2)

by 팔공산호랑이 2020. 4. 7.

-------------------------------------------------

앞에서는 메모리 동적할당의 개념에 대해서 주로 다루어 보았으므로

여기서는

예제 위주로 복습 해보겠습니다.

-------------------------------------------------

 

-------------------------------------------------

int동적할당 예제 코드가 있습니다.

2번째는 동적할당, 해제 함수 사용을 위한  standard library 헤더파일입니다.

6번째는 동적할당 메모리를 가리키기 위한 포인터 입니다.

13번째 에서는

int 형 자료 N개 만큼 동적할당 메모리를 만든 다음

포인터 ptr에 주소를 넘겨주고 있습니다.

-------------------------------------------------

15번째 에서는 반복문으로 동적할당 메모리에 값을 주고 있습니다.

17번째 줄에서는

ptr주소에서 i만큼 떨어진곳의 공간에

i+1값을 대입하고 있습니다.

이 코드를 실행하면

-------------------------------------------------

 

실행결과는 다음과 같습니다.

그 다음엔 그림으로 자세히 알아보겠습니다.

-------------------------------------------------

그림으로 나타내면 이런식으로 표현할 수 있습니다.

malloc 함수를 이용하여 힙공간에 동적 메모리를 할당한 다음

스택공간에 있는 포인터 변수 ptr에 주소를 넘겨주는 방식입니다.

-------------------------------------------------

-------------------------------------------------

마찬가지로 기본적인 형태는

이전의 int형 데이터 동적할당과 같고

달라진 점은 데이터 타입이 double로 바뀌었다는 점 뿐입니다.

-------------------------------------------------

여기선 동적할당된 메모리에 값을 넣어 주는데

아까와는 달리 배열 형태를 사용하였습니다

원래 배열도 포인터 이므로

사실 아까 참조 연산자를 썼던것과 동일 합니다.

오른쪽에 표현한 코드가 동일한 코드입니다.

이 코드를 실행하면

-------------------------------------------------

실행결과는 다음과 같습니다.

그 다음 그림으로 자세히 살펴보겠습니다.

-------------------------------------------------

그림으로 나타내면 이런식으로 표현할 수 있습니다.

malloc 함수를 이용하여 힙공간에 동적 메모리를 할당한 다음

스택공간에 있는 포인터 변수 ptr에 주소를 넘겨주는 방식입니다.

-------------------------------------------------

-------------------------------------------------

마찬가지로 기본적인 형태는

이전의 int형 데이터 동적할당과 같고

달라진 점은 데이터 타입이 char로 바뀌었다는 점 뿐입니다.

-------------------------------------------------

여기선 동적 할당된 메모리에 값을 넣어 주는데

오른쪽에

문자 ‘A’ 더하기 i 하고 있는데

문자 ‘A’는 아스키 코드로 65이므로

정상적으로 65, 66 이런식으로 값이 증가되어 저장됩니다.

-------------------------------------------------

그림으로 나타내면 이런식으로 표현할 수 있습니다.

malloc 함수를 이용하여 힙공간에 동적 메모리를 할당한 다음

스택공간에 있는 포인터 변수 ptr에 주소를 넘겨주는 방식입니다.

-------------------------------------------------