카테고리 없음

6. C언어에서의 포인터와 동적 메모리 할당

배채 2023. 6. 24. 14:16

C언어에서의 포인터와 동적 메모리 할당

안녕하세요! 이번에는 C언어에서 포인터와 동적 메모리 할당에 대해 알아보겠습니다. 포인터는 메모리 주소를 저장하는 변수로, 동적 메모리 할당은 프로그램 실행 중에 필요한 메모리를 동적으로 할당하는 기능입니다. 이제 함께 C언어에서의 포인터와 동적 메모리 할당을 다루는 방법을 살펴보도록 하겠습니다.


1. 포인터의 선언과 활용

포인터는 메모리 주소를 저장하기 위해 사용됩니다. 포인터를 선언할 때에는 데이터 타입 뒤에 '*' 기호를 붙이고, 포인터 변수의 이름을 지정합니다. 포인터 변수를 사용하여 해당 메모리 주소에 접근하고 데이터를 읽거나 수정할 수 있습니다.

#include <stdio.h>

int main() {

    int num = 10;

    int* ptr;  // 포인터 변수 선언

    ptr = &num;  // 포인터에 변수의 주소 할당

    printf("변수의 값: %d\n", num);

    printf("변수의 주소: %p\n", &num);

    printf("포인터가 가리키는 값: %d\n", *ptr);

    printf("포인터의 주소: %p\n", &ptr);

    return 0;

}

2. 동적 메모리 할당

동적 메모리 할당은 프로그램 실행 중에 필요한 메모리를 동적으로 할당하는 기능입니다. `malloc()` 함수를 사용하여 메모리를 할당하고, `free()` 함수를 사용하여 할당된 메모리를 해제합니다. 동적으로 할당된 메모리는 포인터를 통해 접근하고 활용할 수 있습니다.

#include <stdio.h>

#include <stdlib.h>

int main() {

    int* nums;

    int size = 5;

    // 동적 메모리 할당

    nums = (int*)malloc(size * sizeof(int));

    if (nums == NULL) {

        printf("메모리 할당 오류\n");

        return 1;

    }

    // 할당된 메모리에 데이터 저장

    for (int i = 0; i < size; i++) {

        nums[i] = i + 1;

    }

    // 할당된 메모리의 데이터 출력

    for (int i = 0; i < size; i++) {

        printf("%d ", nums[i]);

    }

    printf("\n");

    // 동적 메모리 해제

    free(nums);

    return 0;

}​

​​



포인터와 동적 메모리 할당은 프로그램에서 메모리의 효율적인 관리와 유연한 데이터 구조를 구

성하는 데에 중요한 역할을 합니다. 포인터를 사용하여 메모리 주소에 접근하고 데이터를 다루며, 동적 메모리 할당을 통해 필요한 메모리를 동적으로 조작할 수 있습니다. 이러한 기능들을 활용하여 프로그램의 성능과 유연성을 높여보세요



#C언어 #C언어강좌 #C언어초보 #C언어포인터 #C언어동적매모리 #C언어에서의포인터와동적메모리할당

반응형