본문 바로가기
언어/C언어

[C언어] malloc 함수란?

by 코딩히어로 2023. 10. 30.
728x90

malloc 함수는 C 프로그램에서 특정 작업을 수행하는 코드 블록으로, 임의의 입력을 받아 처리하고 결과를 반환할 수 있는 코드의 일부입니다. 함수는 프로그램을 모듈화하고 코드를 구조화하는 데 사용됩니다. 함수는 다음 요소로 정의됩니다:

함수 구조

 

void* malloc(size_t size);

 

size_t 데이터 형식은 부호 없는 정수로, 메모리 블록의 크기를 나타냅니다. 이 크기는 바이트 단위로 지정됩니다.
malloc() 함수는 메모리 할당에 실패한 경우 NULL 포인터를 반환합니다.

 

 

malloc() 함수 예제 코드:


아래는 malloc() 함수를 사용하여 정수 배열을 동적으로 할당하는 예제 코드입니다.

 

#include <stdio.h>
#include <stdlib.h>

int main() {
    int size = 5; // 배열의 크기
    int *arr;     // 정수 포인터

    // malloc()을 사용하여 메모리 동적 할당
    arr = (int*)malloc(size * sizeof(int));

    if (arr == NULL) {
        printf("메모리 할당에 실패했습니다.\n");
        return 1; // 에러 코드 반환
    }

    // 동적으로 할당된 배열에 값을 저장
    for (int i = 0; i < size; i++) {
        arr[i] = i * 10;
    }

    // 할당된 메모리 사용
    printf("할당된 배열 요소: ");
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    // 메모리 해제
    free(arr);

    return 0;
}

 

위의 코드에서, malloc() 함수를 사용하여 정수 배열을 동적으로 할당하고, 할당된 메모리에 값을 저장한 후, free() 함수를 사용하여 할당된 메모리를 해제합니다. 

이렇게 메모리를 동적으로 할당하면 프로그램이 더 효율적으로 메모리를 사용할 수 있으며, 크기를 동적으로 조절할 수 있습니다.

728x90
반응형

'언어 > C언어' 카테고리의 다른 글

[c언어] 배열을 이용한 FIFO구조 만들기  (1) 2023.11.19
[c언어] qsort 함수란?  (1) 2023.10.30
[c언어] strcpy 함수  (1) 2023.10.30
[c언어] 멀티스레딩과 병렬 프로그래밍  (0) 2023.10.28
[C언어] strstr 함수 사용  (2) 2023.10.27

댓글