zoukankan      html  css  js  c++  java
  • 动态数组创建总结_201307301617

     一维动态数组的创建

    #include <stdio.h>
    #include <malloc.h>
    int main()
    {
    int n;
    int *shzu
    scanf(“%d”, &n);
    shzu= (int *) malloc(sizeof(int) * n);
    … …
    free(shzu);
    return 0;
    }
     
    动态创建和释放二维数组
     

    C动态创建和释放二维数组

    #include<stdio.h>
    #include<stdlib.h> 
    //  或用头文件include <malloc>
    #define ROW 5
    #define COL 4
     
    main(){
        int i; 
        int **arr;
        arr=(int **)malloc(ROW*sizeof(int*));
        for(i=0;i<ROW;++i)
            arr[i]=(int*)malloc(COL*sizeof(int));
          
        printf("%d ",arr[ROW-1][COL-1]); 
          
        for(i=0;i<ROW;++i)
            free(arr[i]);
        free(arr);
    }

    使用calloc申请内存时,内存会清0,而malloc并不进行这项工作,所以打印数组元素时得到的随机值。

    可以用valgrind工具验证确实没有发生内存泄露:

     valgrind --tool=memcheck --leak-check=full ./exefile

    但是有errors:

    就是因为我们没有给arr[ROW-1][COL-1]赋值就是读取其内容。

     
  • 相关阅读:
    软工结对第一次作业
    16061023-软件工程第1次作业
    OO最后一次总结
    OO第三次博客作业
    OO第二次博客作业
    OO第一次博客
    提问回顾与个人总结
    软件工程第一次阅读作业
    test个人博客
    软件工程结对作业
  • 原文地址:https://www.cnblogs.com/xl1027515989/p/3225434.html
Copyright © 2011-2022 走看看