首頁  >  文章  >  動態數組c語言實作方法有哪些

動態數組c語言實作方法有哪些

小老鼠
小老鼠原創
2024-05-02 09:51:17447瀏覽

動態數組 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 中的陣列函數

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn