zoukankan      html  css  js  c++  java
  • C 动态构建一维数组

    /*
        2020,6,20,动态构建一维数组
        str = (char *) realloc(str, 25);动态调整分配的内存大小
    */
    #include<stdio.h>
    #include<malloc.h>

    int main(void)
    {
        int a;
        int * li;
        printf("请输入数组的个数:");   //定义数组的元素个数
        scanf("%d",&a);
        getchar();
        //相当于 int li[5]
        li = (int *)malloc(a * 4);      //构建一个int类型数组,数组长度是int(4个字节)乘以自定义的数组长度a,然后转换成int *类型
        printf("%u ",li);

        for(int i = 0; i < a; i++)
        {
            printf("请输入第%d个元素的值:",i+1);
            scanf("%d",&li[i]);         //直接就可以用数组的方式操作了
            getchar();

        } 
        for(int i = 0; i < a; i++)
        {
            printf("%d ",li[i]);

        }

        free(li);       //释放动态数组

        return 0;
    }
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------
    #include<stdio.h>
    #include<malloc.h>

    void f(int ** b)
    {
        //跨函数使用需要用动态内存分配,如果用静态int i = 10,当函数结束时内存空间会被程序释放导致逻辑错误
        *b = (int *)malloc(sizeof(int));  
        **b = 10;
    }
    int main(void)
    {
        int * a;
        f(&a);
        printf("%d",*a);

        return 0;
    }
  • 相关阅读:
    第六周作业
    第五周作业
    2019春第四周作业软件
    2019年春季学期第三周作业
    2019年春季学期第二周作业(文件指针)
    7-2 求最大值及其下标 (20 分)
    7-1 查找整数 (10 分)
    7-1 抓老鼠啊~亏了还是赚了? (20 分)
    秋季学期学习总结
    第6周作业
  • 原文地址:https://www.cnblogs.com/hemage/p/13257311.html
Copyright © 2011-2022 走看看