首頁 > 常見問題 > 主體

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

小老鼠
發布: 2024-05-02 09:51:17
原創
430 人瀏覽過

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

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!