티스토리 뷰

💥 메모리 영역

 1) 코드영역

   - 실행할 명령어들이 순서대로 쌓인다. CPU가 이 영역에서 명령어들을 하나씩 가져다 처리한다.

 2) 스택영역

   - 스택이란 모든 원소들의 삽입, 삭제를 한 쪽 방향에서만 수행하도록 하는 선형 자료구조이다.

   - 후입선출방식(Last In First Out)이라고 한다. 나중에 들어온 것이 먼저 빠져나간다는 뜻이다.

 3) 힙영역

   - 힙은 컴퓨터 메모리의 일부가 할당되었다가 회수되는 일들의 반복이다.

   - 힙은 컴파일 시가 아닌 실행 시 사용자로부터 할당 메모리를 입력 받는다.

 4) 데이터영역

   - 전역변수와 static 변수가 저장되는 메모리 영역이다.

   - 이 메모리는 프로그램 종료 시 소멸된다.

💥 동적 메모리 할당 함수의 원형

void*malloc(size_t size);

 - 전달인자 size는 바이트 단위로 입력한다.

 - 메모리 할당이 되면 메모리의 주소값을 리턴한다.

 - 메모리 부족 시 NULL 포인터를 리턴한다.

 - void는 타입이 지정되지 않는 포인터를 의미한다.

   => 원하는 메모리 크기만큼 할당해줄테니, 메모리는 너가 원하는 형태로 정해서 사용해!

💥 동적 메모리 할당 실습 해보기

#include <stdio.h>

int main()
{
    int num;
    int *student;
    
    printf("학생 수를 입력하세요 : ");
    scanf("%d", &num);
    
    student = (int*)malloc(sizeof(int) * num);
    
    if(student == NULL){
        printf("메모리가 할당되지 않았습니다.\n");
        return 0;
    }
    
    printf("할당된 메모리 크기는 %d 입니다.\n", sizeof(int)*num);
    
    free(student);
    return 0;
}

sizeof(int)는 int의 크기를 나타내기 위함이다.

int의 크기와 학생 수를 곱해 할당된 메모리 크기를 나타낼 수 있게 하였다.

'웹 개발 공부하기' 카테고리의 다른 글

[01.09] 클래스(Class)  (0) 2025.01.12
[01.09] 객체 지향 프로그래밍 방식  (0) 2025.01.12
[01.09] 공용체, enum  (0) 2025.01.12
[01.09] 구조체  (0) 2025.01.12
[01.09] 함수 포인터  (0) 2025.01.12
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함