본문 바로가기
[ CODING STUDY ]/》C언어 코드실습

C언어 - [malloc, 메모리할당, memset]

by MRG 2021. 5. 17.
728x90
반응형

▣ 메모리를 할당하려면 먼저 #include <stdlib.h>를 선언해주세요.

그리고 주소를 저장하는 변수 포인터에 malloc(sizeof(int))함수로 메모리를 할당해주세요.

그럼 int 4byte만큼 메모리가 할당되고 그 메모리에 주소 값이 포인터에 대입이 됩니다. 

그리고 %p 형식으로 메모리 주소를 확인해보면 이렇게 각각에 주소가 나오는 걸 확인할 수 있습니다. 

 

▣ 여기서 기억해야 할껀 malloc()함수의 원형 형태는

void * malloc(size)입니다. 

그렇기 때문에 void 반환형이 없다라는 자료형이므로

만약 int*주소를 반환하고 싶다면

(int*)malloc(size)로 코딩을 진행해야 합ㄴ디ㅏ.

 

▣ 직접 중단점을 찍고 디버그를 해서 메모리를 확인해보겠습니다. 

p2에 값을 확인해보면 이렇게 4byte가 메모리에 주소가 나오는걸 확인할 수 있습니다.

선언된 cd 빈 값을 의미합니다. 

 

▣ p3도 확인해보면 이렇게 char 1byte가 선언되어 있는걸 확인할 수 있습니다. 

 

▣ 그리고 여기서 중요한건 할당한 메모리는 꼭 free() 함수로 돌려줘야 합니다. 

아니면 메모리가 누전됩니다. 간단하게 이야기하면 프로그램에서 다시 사용할 수 없게 됩니다. 

사용을 하고 다시 운영체제한테 돌려줘야 그 메모리를 다시 사용할 수 있게 됩니다. 

 

▣ 구조체에서 했던것처럼 이번에는 메모리에 있는 값을 한꺼번에 초기화하는 걸 해보겠습니다.

#include <string.h>를 선언해주세요.

그리고 memset(대상, 값, 크기)를 매개변수로 넣어서 초기화를 해준다음에 

p2를 확인해보면 이렇게 4byte에 모두 1이 들어 있는걸 확인할 수 있습니다.

728x90
반응형

댓글