C语言实现动态数组
Published on 2020-09-19 19:21 in 暂未分类 with 林动

C语言实现动态数组

    变长数组:c99,运行时给定一个n

    int n;

    scanf("%d",&n);

    一维:int a[n];

    多维:int a[m][n]

     

     

    一维动态数组:内存分配函数:头文件<stdlib.h>

    int * a;

    • a=(int *)malloc(n*sizeof(int))分配不初始化
    • a=(int *)calloc(n,sizeof(int))分配并清零

    if(a==NULL){

     ...

    }

    之后可使用a[i]

    不需要时,应释放

    free(a);

     

     

    二维动态数组:内存分配函数:头文件<stdlib.h>

    int **a;//假设分配a[m][n]

    分配第一维度

    a=(int **)malloc(m*sizeof(int*));

    分配第二维度

    for(int i=0;i<m;++i){

      a[i]=(int*)malloc(n*sizeof(int));

    }

    使用

    for(int i=0;i<m;++i){

      for(int j=0;j<n;++j0{

        a[i][j]...

      }

    }

    释放第二维度

    for(int i=0;i<m;++i){

      free(a[i]);

    }

    释放第一维度

    free(a);

    posted @   林动  阅读(5115)  评论(0编辑  收藏  举报
    编辑推荐:
    · 开发者必知的日志记录最佳实践
    · SQL Server 2025 AI相关能力初探
    · Linux系列:如何用 C#调用 C方法造成内存泄露
    · AI与.NET技术实操系列(二):开始使用ML.NET
    · 记一次.NET内存居高不下排查解决与启示
    阅读排行:
    · 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
    · 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
    · Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
    · 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
    · AI技术革命,工作效率10个最佳AI工具
    点击右上角即可分享
    微信分享提示