Kaedah pelaksanaan bahasa C tatasusunan dinamik: malloc dan percuma: gunakan malloc() untuk memperuntukkan memori, realloc() untuk menukar saiz dan free() untuk melepaskan memori. Fungsi tatasusunan dalam stdlib.h: realloc() menukar saiz, calloc() mencipta dan memulakan kepada 0, reallocarray() menentukan bilangan elemen.
Tatasusunan dinamik membolehkan kami melaraskan saiz tatasusunan mengikut keperluan semasa masa jalan, sekali gus mengelakkan pembaziran memori atau masalah limpahan yang dihadapi apabila menggunakan tatasusunan statik. Dalam bahasa C, terdapat dua cara utama untuk melaksanakan tatasusunan dinamik:
malloc dan percuma adalah fungsi dalam bahasa C untuk peruntukan memori dinamik. Kita boleh menggunakan malloc() untuk memperuntukkan blok memori dan menyimpan elemen tatasusunan di dalamnya. Jika mahu, anda juga boleh menggunakan realloc() untuk menukar saiz memori yang diperuntukkan. Apabila tatasusunan tidak lagi diperlukan, free() harus digunakan untuk membebaskan memori yang diperuntukkan.
Contoh kod:
<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>
Pustaka standard C juga menyediakan beberapa fungsi untuk tatasusunan dinamik:
Contoh kod:
<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>
Atas ialah kandungan terperinci Apakah kaedah pelaksanaan tatasusunan dinamik dalam bahasa C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!