美文网首页
C语言动态数组

C语言动态数组

作者: 瓜尔佳Anthony | 来源:发表于2019-03-06 15:18 被阅读0次

    一维动态数组

    #include<stdio.h>
    #include<stdlib.h>
    int main(){
        int n,i;
        int *arr = NULL;
        printf("请输入所要创建的一维动态数组的长度:");
        scanf("%d",&n);
        if((arr=(int *)malloc(n*sizeof(int)))==NULL) {
            printf("分配内存空间失败,程序退出!");
            return 0;
        }
        for(i=0;i<n;i++){  /*向申请成功的数组中赋值*/
            arr[i]=i+1;
            printf("%d\t",arr[i]);
            if(0==(i+1)%4)
                printf("\n");  /*一行打印四个元素*/
        }
        if(arr != NULL){
            free(arr);  /*切记!使用完后记得要释放所申请的空间*/
        }
        return 0;
     }
    

    二维动态数组

    #include<stdio.h>
    #include<stdlib.h>
    int main(){
        int n1,n2,i,j;
        int **arr = NULL;
        printf("请输入所要创建的动态数组的第一维长度:");
        scanf("%d",&n1);
        printf("请输入所要创建的动态数组的第二维长度:");
        scanf("%d",&n2);
        if((arr=(int **)malloc(n1*sizeof(int *)))==NULL){  /*第一维的创建*/
            printf("分配内存空间失败,程序退出!");
            return 0;
        }
        for(i=0;i<n1;i++){  /*创建第二维*/
            if((arr[i]=(int *)malloc(n2*sizeof(int)))==NULL){
                printf("分配内存空间失败,程序退出!");
                return 0;
            }
        }
        for(i=0;i<n1;i++){
            for(j=0;j<n2;j++){
                arr[i][j]=i*n2+j+1;  /*为申请成功的数组中赋值*/
                printf("%d\t",arr[i][j]);
            }
            printf("\n");
        }
        for(i=0;i<n1;i++){
            free(arr[i]);  /*先释放第二维*/
        }
        free(arr);  /*最后释放第一维*/
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:C语言动态数组

          本文链接:https://www.haomeiwen.com/subject/xnatpqtx.html