ホームページ  >  記事  >  C言語での動的配列の実装方法は何ですか?

C言語での動的配列の実装方法は何ですか?

小老鼠
小老鼠オリジナル
2024-05-02 09:51:17396ブラウズ

動的配列 C 言語の実装方法: malloc と free: malloc() を使用してメモリを割り当て、realloc() を使用してサイズを変更し、free() を使用してメモリを解放します。 stdlib.h の配列関数: realloc() はサイズを変更し、calloc() は作成して 0 に初期化し、reallocarray() は要素の数を指定します。

C言語での動的配列の実装方法は何ですか?

動的配列 C 言語の実装方法

動的配列を使用すると、実行時に必要に応じて配列のサイズを調整できるため、実行時に発生する問題を回避できます。静的配列を使用すると、メモリの無駄やオーバーフローの問題が発生します。 C 言語では、動的配列を実装する主な方法が 2 つあります。

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 の配列関数

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。