不使用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()函数释放动态分配的内存空间。

相关内容

热门资讯

透视辅助!hhpoker有后台... 透视辅助!hhpoker有后台操作吗,hhpoker德州机器人,科技教程(有挂教程)1、许多玩家不知...
透视计算!hhpoker视频巡... 透视计算!hhpoker视频巡查真的假的,hhpoker有后台操作吗,切实教程(有挂方法)小薇(透视...
透视挂透视!hhpoker脚本... 透视挂透视!hhpoker脚本下载,hhpoker脚本下载,2025新版教程(有挂详情)1、玩家可以...
透视有挂!hhpoker作弊码... 透视有挂!hhpoker作弊码,hhpoker真的假的,可靠教程(有挂解说)1、许多玩家不知道hhp...
透视线上!hhpoker是内部... 透视线上!hhpoker是内部控制吗,德州透视hhpoker,必备教程(有挂技巧)1、透视线上!hh...
透视新版!hhpoker免费透... 透视新版!hhpoker免费透视脚本,hhpoker怎么防作弊,技巧教程(有挂揭秘);1、玩家可以在...
透视肯定!hhpoker软件安... 透视肯定!hhpoker软件安装包,hhpkoer辅助器,可靠技巧(有挂介绍)所有人都在同一条线上,...
透视ai!hhpoker怎么破... 透视ai!hhpoker怎么破解,hhpoker真能买到挂吗,德州论坛(有挂细节);1、每一步都需要...
透视科技!hhpoker辅助软... 透视科技!hhpoker辅助软件,hhpoker外挂靠谱吗,2025新版教程(有挂揭秘);1、进入到...
透视黑科技!hhpkoer辅助... 透视黑科技!hhpkoer辅助挂是真的吗,hhpoker开挂教程,扑克教程(有挂工具)1、透视黑科技...