Dynamic array C language implementation method: malloc and free: use malloc() to allocate memory, realloc() to change the size, and free() to release memory. Array functions in stdlib.h: realloc() changes the size, calloc() creates and initializes to 0, reallocarray() specifies the number of elements.
Dynamic array allows us to adjust the array size as needed at runtime, thereby avoiding the problems encountered when using static arrays memory waste or overflow issues. In C language, there are two main ways to implement dynamic arrays:
malloc and free are functions in C language for dynamic memory allocation. We can use malloc() to allocate a block of memory and store the array elements in it. If desired, you can also use realloc() to change the allocated memory size. When the array is no longer needed, free() should be used to free the allocated memory.
Sample code:
#include 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; }
The C standard library also provides several functions for dynamic arrays :
Sample code:
#include int main() { // 使用 calloc() 创建一个包含 10 个整数的动态数组,并将其元素初始化为 0 int *array = (int *)calloc(10, sizeof(int)); // 使用 reallocarray() 增大数组大小 array = (int *)reallocarray(array, 20, sizeof(int)); // 释放动态数组 free(array); return 0; }
The above is the detailed content of What are the implementation methods of dynamic array in C language?. For more information, please follow other related articles on the PHP Chinese website!