与ChatGPT对话:用C语言写一个可变长度的数组功能。

与ChatGPT对话:用C语言写一个可变长度的数组功能。

编码文章call10242025-04-15 11:01:0824A+A-

问:用C语言写一个可变长度的数组功能。

ChatGPT:C语言中可以使用动态内存分配函数 malloc 和 realloc 来创建可变长度的数组。

以下是一个示例代码,展示如何使用 malloc 和 realloc 函数来创建和操作可变长度的数组:

#include 
#include 

int main() {
    int size = 5;
    int *arr = malloc(size * sizeof(int)); // 创建长度为 5 的数组

    // 初始化数组
    for (int i = 0; i < size; i++) {
        arr[i] = i;
    }

    // 打印数组
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    // 增加数组长度
    size = 10;
    arr = realloc(arr, size * sizeof(int)); // 扩展数组长度为 10

    // 初始化扩展部分的数组
    for (int i = 5; i < size; i++) {
        arr[i] = i;
    }

    // 打印数组
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    free(arr); // 释放内存

    return 0;
}

该示例中,首先使用 malloc 函数创建长度为 5 的数组,并初始化数组。然后使用 realloc 函数将数组长度扩展为 10,并初始化扩展部分的数组。最后使用 free 函数释放内存。

注意:使用动态内存分配函数时,需要确保正确地管理内存,避免内存泄漏和越界访问等问题。


编者:很多年没写C语言程序了,如果真写的话,查阅资料和测试,估计我也要写一个小时。ChatGPT几秒钟就搞定了,虽然不能直接拿过来用,但实际拿过来稍为改吧改吧,也不多了。ChatGPT对程序猿来说是一把双刃剑,它让写代码门槛一下子拉低到了地平线,它暂时不能完全替代程序员,却可以大幅提高工作效率,进而裁掉低端生产力的程序员和高薪的程序员,对中端程序员反而可能是利好。

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4