▣ 메모리를 할당하려면 먼저 #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이 들어 있는걸 확인할 수 있습니다.
'[ C언어 ] > - C언어 실습연습' 카테고리의 다른 글
C언어 - [화면지우기, 잠시대기, Sleep, cls, Windows.h] (0) | 2021.07.22 |
---|---|
C언어 - [글자 색 변경, 콘솔창 크기, 콘솔창 색, 글자 배경색] (0) | 2021.06.02 |
C언어 - [공용체, 열거형, 구조체비트필드] (0) | 2021.05.17 |
C언어 - [구조체, 구조체 포인터, 구조체배열, 구조체포인터배열] (0) | 2021.05.16 |
C언어 - [스톱워치, 타이머, 초 카운트, time] (0) | 2021.05.11 |
댓글