不使用malloc创建一个可变大小的数组
创始人
2024-12-29 01:30:30
0

要创建一个可变大小的数组,可以使用动态内存分配函数realloc()来实现。realloc()函数可以重新分配已分配的内存块的大小,因此可以用它来调整数组的大小。

以下是一个示例代码,演示了如何使用realloc()实现可变大小的数组:

#include 
#include 

int main() {
    int* arr = NULL; // 初始化数组指针为NULL
    int size = 0; // 数组大小
    int input;
    int i;

    printf("请输入数组元素个数:");
    scanf("%d", &size);

    arr = (int*)malloc(size * sizeof(int)); // 分配初始大小的内存空间

    printf("请输入数组元素:\n");
    for (i = 0; i < size; i++) {
        scanf("%d", &arr[i]);
    }

    printf("数组元素为:");
    for (i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    printf("请输入要添加的元素:");
    scanf("%d", &input);

    size++; // 增加数组大小
    arr = (int*)realloc(arr, size * sizeof(int)); // 重新分配更大的内存空间

    arr[size - 1] = input; // 添加新元素到数组末尾

    printf("更新后的数组元素为:");
    for (i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    free(arr); // 释放内存空间

    return 0;
}

在这个示例中,首先通过malloc()函数分配了一个初始大小的内存空间来保存数组元素。然后,通过realloc()函数重新分配更大的内存空间,以保存新增加的元素。在添加新元素之前,先将数组的大小加1。最后,使用for循环遍历并打印更新后的数组元素。最后,使用free()函数释放动态分配的内存空间。

相关内容

热门资讯

红龙扑克辅助工具!红龙扑克会作... 红龙扑克辅助工具!红龙扑克会作假吗,(红龙扑克)总是有挂(详细辅助器教程);亲,其实确实真的有挂(需...
微扑克辅助软件!微扑克小程序辅... 此外,数据分析德州(微扑克辅助软件)辅助神器app还具备辅助透视行为开挂功能,通过对客户微扑克辅助软...
wepokeai机器人!wep... wepokeai机器人!wepokeai辅助(Wepoke检测)一直是有挂(详细ai代打的胜率教程)...
aapoker辅助工具!aap... aapoker辅助工具!aapoker辅助软件,(aapoker系统)一直是真的有挂(详细辅助工具教...
微扑克游戏辅助器!微扑克插件,... 1、微扑克游戏辅助器!微扑克插件,(微扑克有挂)果然真的有挂(详细辅助器ios教程);详细教程。2、...
德扑之星实战!德扑之星里面怎么... 德扑之星实战!德扑之星里面怎么隐藏入池率,德扑安卓都是真的有挂(详细ai购买教程) 科技详细教程;7...
wepoke辅助技巧!wepo... wepoke辅助技巧!wepoke科技(wepoke实锤)都是是真的有挂(详细有外挂教程);科技安装...
红龙扑克辅助器!红龙扑克是不是... 红龙扑克辅助器!红龙扑克是不是有问题,(红龙扑克)真是存在有挂(详细辅助工具教程);软件透明挂作为一...
德州之星插件!德扑之星为什么不... 德州之星插件!德扑之星为什么不发牌,德扑之星功能确实有挂(详细ai代打教程);原来确实真的有挂(需添...
微扑克有辅助挂!微扑克系统发牌... 1、微扑克有辅助挂!微扑克系统发牌规律,(微扑克钻石)真是存在有挂(详细德州专用辅助器教程);详细教...