> 일반적인 문제 > C 언어에서 동적 배열을 구현하는 방법은 무엇입니까?

C 언어에서 동적 배열을 구현하는 방법은 무엇입니까?

小老鼠
풀어 주다: 2024-05-02 09:51:17
원래의
461명이 탐색했습니다.

동적 배열 C 언어 구현 방법: malloc 및 free: malloc()을 사용하여 메모리를 할당하고, realloc()을 사용하여 크기를 변경하고, free()를 사용하여 메모리를 해제합니다. stdlib.h의 배열 함수: realloc()은 크기를 변경하고, calloc()은 생성하여 0으로 초기화하며, reallocarray()는 요소 수를 지정합니다.

C 언어에서 동적 배열을 구현하는 방법은 무엇입니까?

동적 배열 C 언어 구현 방법

동적 배열을 사용하면 런타임에 필요에 따라 배열 크기를 조정할 수 있으므로 정적 배열을 사용할 때 발생하는 메모리 낭비나 오버플로 문제를 피할 수 있습니다. C 언어에는 동적 배열을 구현하는 두 가지 주요 방법이 있습니다.

malloc 및 free

malloc 및 free는 C 언어에서 동적 메모리 할당을 위한 함수입니다. malloc()을 사용하여 메모리 블록을 할당하고 그 안에 배열 요소를 저장할 수 있습니다. 원하는 경우 realloc()을 사용하여 할당된 메모리 크기를 변경할 수도 있습니다. 배열이 더 이상 필요하지 않으면 free()를 사용하여 할당된 메모리를 해제해야 합니다.

샘플 코드:

<code class="c">#include <stdlib.h>

int main() {
    // 分配一个包含 10 个整数的动态数组
    int *array = (int *)malloc(10 * sizeof(int));

    // 访问和修改数组元素
    array[0] = 1;
    array[9] = 10;

    // 使用 realloc() 增大数组大小
    array = (int *)realloc(array, 20 * sizeof(int));

    // 释放动态数组
    free(array);

    return 0;
}</code>
로그인 후 복사

stdlib.h의 Array 함수

C 표준 라이브러리는 동적 배열을 위한 여러 함수도 제공합니다.

  • realloc(): 위에서 언급한 대로 realloc( )을 사용하여 다음을 수행할 수 있습니다. 할당된 메모리 크기를 변경합니다.
  • calloc(): calloc()은 지정된 크기의 배열을 만들고 모든 요소를 ​​0으로 초기화합니다.
  • reallocarray(): reallocarray()는 바이트 수 대신 배열 크기(요소 수)를 지정할 수 있는 realloc()의 특수 버전입니다.

샘플 코드:

<code class="c">#include <stdlib.h>

int main() {
    // 使用 calloc() 创建一个包含 10 个整数的动态数组,并将其元素初始化为 0
    int *array = (int *)calloc(10, sizeof(int));

    // 使用 reallocarray() 增大数组大小
    array = (int *)reallocarray(array, 20, sizeof(int));

    // 释放动态数组
    free(array);

    return 0;
}</code>
로그인 후 복사

위 내용은 C 언어에서 동적 배열을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿