Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I am almost a beginner in C and I want to allocate a 2 dimensional array, change it, reallocate it and print it. Both of the answers with the code were useful.Now the code is:

    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	" , lp[i][j] );
          }
       printf("
");
      }
       free( lp );
       return(0);
     }
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
312 views
Welcome To Ask or Share your Answers For Others

1 Answer

A lot of things are wrong.

1. The for loop

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


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

If any of them is missing, leave them blank, but you do need the semicolons.

Even then j=0;j<0 makes no sense as a condition.

2. Misspelling

You misspelled lp as pl within the second for-loop.

3. main

You did not specify a return type for main. This isn't being reported but is the old-style and shouldn't be used anymore.

4. Dynamic allocation

That isn't the way to allocate a 2-D array dynamically.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...