zoukankan      html  css  js  c++  java
  • 动态创建二维素组

    有时候在创建数组之前,不知道具体几行或列(比如说,我们将数据库中的数据取出,知道列数,而行数是不确定的),这是我们需要动态创建数组:

    两种方法:
    1.转化为一维数组申请
    2.先申请全部行首指针,再按行逐行申请

    1.
    a=(int *)malloc(sizeof(int),(unsigned)m*n);
    使用的时候就和一般的二维数组一样。
    举个例子给你:
    #include "stdlib.h" 
    #include "stdio.h" 
    #include 

    int main() 

      int i,j; 
      int n;//这个就是需要指定的行数
      int (*p)[10]; 

      scanf("%d",&n);//取得行数

    //动态生成二维数组,指定列数为10,如果想改,自己该里面 
    的参数,如果想定义n行2列就为: p=(int (*)[2])malloc(n*2*sizeof(int)); 

     p=(int (*)[10])malloc(n*10*sizeof(int)); //动态申请n行10列的二维数组


    for(i=0;i<n;i++)

    {

      for(j=0;j<10;j++)

      {

        p[i][j]=i*j;

      } 
    }

    for(i=0;i<n;i++)

    {

      for(j=0;j<10;j++)

      {

        printf("%d",p[i][j]);

      } 

      printf(" ");

    }

    free(p); 

    return 0; 
    }

    2
    .

    这个也给你举个例子吧:

    #include 
    #include 
    main() 

      int i = 0; 
      int j = 0; 
      int line = 0; 
      int row = 0; 
      int **p = NULL; 

      printf("input the line of the array: "); 
      scanf("%d", &line); 
      printf("input the row of the array: "); 
      scanf("%d", &row); 

      p = (int **)malloc(sizeof(int *) * line); 
      i
    f (NULL == p) 

      { 
        return; 
      } 
      for (i = 0; i < line; i++) 
      { 
      *(p + i) = (int *)malloc(sizeof(int) * row); 
      if (NULL == *(p + i)) 
      { 
      return; 
      } 
      } 
    /*input data*/ 
    for (i = 0; i < line; i++) 

      for(j = 0; j < row; j++) 
      { 
        p[i][j] = i + 1; 
      } 
      } 
    /*output data*/ 
    for (i = 0; i < line; i++) 

      for(j = 0; j < row; j++) 
      { 
        printf("%d", p[i][j]); 
      } 

    /*free every line point*/ 
    for (i = 0; i < line; i++) 

      free(*(p + i)); 
      p[i] = NULL; 


    free(p); 
    p = NULL; 
    }

  • 相关阅读:
    Tinkoff Challenge
    Tinkoff Challenge
    Tinkoff Challenge
    Tinkoff Challenge
    整体二分
    树链剖分+LCT
    上下界网络流
    莫队
    可并堆
    bzoj_1033: [ZJOI2008]杀蚂蚁antbuster
  • 原文地址:https://www.cnblogs.com/zhaihongliangblogger/p/6194379.html
Copyright © 2011-2022 走看看