我几乎是C语言的初学者,我想分配一个二维数组,对其进行更改,重新分配和打印。
代码的两个答案都很有用,现在的代码是:

    main()
    {
     int i, j, L , **lp ;
      scanf("%i" , &L );
      lp = calloc(L , sizeof(*lp) );
      for(i=0 ; i<L ; i++)
      lp[i] = calloc( L , sizeof( *(lp[i])) );

      for(i=0 ; i<L ; i++)
      {
          for(j=0 ; j<L ; j++ )
          {
           lp[i][j]=0;
           printf("%i\t" , lp[i][j] );
          }
       printf("\n");
      }
       free( lp );
       return(0);
     }

最佳答案

很多事情是错误的。

1. for循环

{   for(j=0 , j<0 , j++ )


for (initialization_expression;loop_condition;increment_expression){..}


如果缺少任何一个,请将其留空,但是您确实需要分号。

即使这样,j=0;j<0作为条件也没有意义。

2.拼写错误

您在第二个for循环中将lp拼错为pl。

3.主要

您没有为main指定返回类型。这没有被报道,但是它是旧式的,不应该再使用了。

4.动态分配

这不是动态分配二维数组的方法。

关于c - 多维数组分配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13304278/

10-12 14:46