c语言可变长数组怎样扩容

   2024-10-06 9940
核心提示:C语言中的可变长数组(也称为动态数组)可以通过重新分配和复制数组的方式来扩容。具体步骤如下:创建一个新的数组,大小比原数

C语言中的可变长数组(也称为动态数组)可以通过重新分配和复制数组的方式来扩容。具体步骤如下:

创建一个新的数组,大小比原数组大一定的倍数(通常是2倍),用于存放扩容后的元素。将原数组中的元素逐个复制到新数组中。释放原数组的内存空间。将新数组的指针赋给原数组的指针,完成扩容。

下面是一个简单的示例代码,展示如何扩容一个动态数组:

#include <stdio.h>#include <stdlib.h>int main() {    int initialCapacity = 5;    int *arr = (int *)malloc(sizeof(int) * initialCapacity);    int size = 0;    int capacity = initialCapacity;    // 添加元素到数组中    for (int i = 0; i < 10; i++) {        if (size == capacity) {            capacity *= 2;            arr = (int *)realloc(arr, sizeof(int) * capacity);        }        arr[size] = i;        size++;    }    // 输出数组中的元素    for (int i = 0; i < size; i++) {        printf("%d ", arr[i]);    }    // 释放内存    free(arr);    return 0;}

在上面的代码中,当数组的大小达到容量时,我们通过realloc函数重新分配内存空间,将容量扩大为原来的两倍。然后将新的元素添加到数组中,直到所有元素都添加完毕。最后,记得释放动态数组的内存空间。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号